source: git/Singular/longalg.h @ d768c6

fieker-DuValspielwiese
Last change on this file since d768c6 was 4508ce5, checked in by Hans Schönemann <hannes@…>, 23 years ago
*hannes: nMap removed nSetMap returns now the routine git-svn-id: file:///usr/local/Singular/svn/trunk@4920 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.5 KB
Line 
1#ifndef LONGALG_H
2#define LONGALG_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: longalg.h,v 1.24 2000-12-15 18:49:32 Singular Exp $ */
7/*
8* ABSTRACT:   algebraic numbers
9*/
10#include "structs.h"
11#include "longrat.h"
12#include "polys-impl.h"
13
14struct slnumber;
15typedef struct slnumber * lnumber;
16
17//make parameter type same as exponent type
18#define PARAMETER_TYPE short
19#define SIZEOF_PARAMETER SIZEOF_SHORT
20
21struct reca
22{
23  alg ne;
24  number ko;
25  PARAMETER_TYPE e[1];
26};
27
28struct slnumber
29{
30  alg z;
31  alg n;
32  BOOLEAN s;
33};
34
35extern int naNumbOfPar;             /* maximal number of parameters */
36extern alg naMinimalPoly;
37extern char **naParNames;
38extern int napMonomSize;
39
40void naSetChar(int p, ring r);
41#define napAddExp(P,I,E)  ((P)->e[I-1]+=(E))
42#define napLength(p)      (pLength((poly)p))
43#ifdef LDEBUG
44void    naDBDelete (number *p,char *f, int l);
45#define naDelete(A) naDBDelete(A,__FILE__,__LINE__)
46#else
47void    naDelete (number *p);
48#endif
49number  naInit(int i);                              /* z := i */
50number  naPar(int i);                               /* z := par(i) */
51int     naParDeg(number n);                         /* i := deg(n) */
52int     naSize(number n);                           /* size desc. */
53int     naInt(number &n);
54void    naNumberToInt(number n, int *i);
55void    naNew(number *z);
56BOOLEAN naIsZero(number za);                         /* za = 0 ? */
57BOOLEAN naIsOne(number  za);                         /* za = 1 ? */
58BOOLEAN naIsMOne(number  za);                        /* za = -1 ? */
59BOOLEAN naEqual(number a, number b);                  /* a = b ? */
60BOOLEAN naGreater(number a, number b);                  /* dummy */
61number  naNeg(number za);                           /* za := - za */
62number  naInvers(number a);
63BOOLEAN naGreaterZero(number a);
64void    naPower(number x, int exp, number *lo);
65BOOLEAN naGreaterZero(number a);
66number  naCopy(number p);                              /* erg:= p */
67number  naAdd(number la, number li);               /* lu := la+li */
68number  naMult(number la, number li);              /* lo := la*li */
69number  naDiv(number la, number li);               /* lo := la/li */
70number  naIntDiv(number la, number li);            /* lo := la/li */
71//number  naIntMod(number la, number li);            /* lo := la/li */
72number  naSub(number la, number li);               /* lu := la-li */
73void    naNormalize(number &p);
74number  naGcd(number a, number b);
75number  naLcm(number a, number b);
76char *  naRead(char * s, number * p);
77void    naWrite(number &p);
78char *  naName(number n);
79nMapFunc naSetMap(ring src, ring dst);
80#ifdef LDEBUG
81BOOLEAN naDBTest(number a, char *f,int l);
82#endif
83
84void    naSetIdeal(ideal I);
85
86// external access to the interna
87#define RECA_SIZE (sizeof(alg)+sizeof(number))
88alg napAdd(alg p1, alg p2);
89void napDelete(alg *p);
90poly naPermNumber(number z, int * par_perm, int P, ring r);
91#define napVariables naNumbOfPar
92#define napNext(p) (p->ne)
93#define napIter(p) ((p) = (p)->ne)
94#define napGetCoeff(p) (p->ko)
95#define napGetExp(p,i) ((p)->e[(i)-1])
96#define napGetExpFrom(p,i,r) ((p)->e[(i)-1])
97#define napSetExp(p,i,ee) ((p)->e[(i)-1]=ee)
98#define napNew() ((alg)omAlloc0(napMonomSize))
99#define nanumber lnumber
100#define naGetNom0(na)  (((nanumber)(na))->z)
101#define naGetDenom0(na)  (((nanumber)(na))->n)
102extern number   (*nacCopy)(number a);
103extern BOOLEAN  (*nacIsZero)(number a);
104extern number   (*nacInit)(int i);
105extern void     (*nacNormalize)(number &a);
106extern void napWrite(alg l);
107extern number   naGetDenom(number &n);
108#endif
109
Note: See TracBrowser for help on using the repository browser.