source: git/Singular/longalg.h @ 0224c8

spielwiese
Last change on this file since 0224c8 was 0224c8, checked in by Hans Schönemann <hannes@…>, 23 years ago
*hannes napoly git-svn-id: file:///usr/local/Singular/svn/trunk@4827 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.3 KB
Line 
1#ifndef LONGALG_H
2#define LONGALG_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: longalg.h,v 1.17 2000-12-07 12:07:01 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, BOOLEAN complete, ring r);
41#ifdef LDEBUG
42void    naDBDelete (number *p,char *f, int l);
43#define naDelete(A) naDBDelete(A,__FILE__,__LINE__)
44#else
45void    naDelete (number *p);
46#endif
47number  naInit(int i);                              /* z := i */
48number  naPar(int i);                               /* z := par(i) */
49int     naParDeg(number n);                         /* i := deg(n) */
50int     naSize(number n);                           /* size desc. */
51int     naInt(number &n);
52void    naNumberToInt(number n, int *i);
53void    naNew(number *z);
54BOOLEAN naIsZero(number za);                         /* za = 0 ? */
55BOOLEAN naIsOne(number  za);                         /* za = 1 ? */
56BOOLEAN naIsMOne(number  za);                        /* za = -1 ? */
57BOOLEAN naEqual(number a, number b);                  /* a = b ? */
58BOOLEAN naGreater(number a, number b);                  /* dummy */
59number  naNeg(number za);                           /* za := - za */
60number  naInvers(number a);
61BOOLEAN naGreaterZero(number a);
62void    naPower(number x, int exp, number *lo);
63BOOLEAN naGreaterZero(number a);
64number  naCopy(number p);                              /* erg:= p */
65number  naAdd(number la, number li);               /* lu := la+li */
66number  naMult(number la, number li);              /* lo := la*li */
67number  naDiv(number la, number li);               /* lo := la/li */
68number  naIntDiv(number la, number li);            /* lo := la/li */
69//number  naIntMod(number la, number li);            /* lo := la/li */
70number  naSub(number la, number li);               /* lu := la-li */
71void    naNormalize(number &p);
72number  naGcd(number a, number b);
73number  naLcm(number a, number b);
74char *  naRead(char * s, number * p);
75void    naWrite(number &p);
76char *  naName(number n);
77BOOLEAN naSetMap(ring r);
78#ifdef LDEBUG
79BOOLEAN naDBTest(number a, char *f,int l);
80#endif
81
82void    naSetIdeal(ideal I);
83
84// external access to the interna
85#define RECA_SIZE (sizeof(alg)+sizeof(number))
86alg napAdd(alg p1, alg p2);
87void napDelete(alg *p);
88poly naPermNumber(number z, int * par_perm, int P);
89#define napVariables naNumbOfPar
90#define napNext(p) (p->ne)
91#define napGetCoeff(p) (p->ko)
92#define napGetExp(p,i) (p->e[(i)-1])
93#define napNew() ((alg)omAlloc0(napMonomSize))
94#define nanumber lnumber
95#define naGetNom0(na)  (((nanumber)(na))->z)
96#define naGetDenom0(na)  (((nanumber)(na))->n)
97extern number   (*nacCopy)(number a);
98extern BOOLEAN  (*nacIsZero)(number a);
99extern number   (*nacInit)(int i);
100extern void     (*nacNormalize)(number &a);
101extern void napWrite(alg l);
102extern number   naGetDenom(number &n);
103#endif
104
Note: See TracBrowser for help on using the repository browser.