source: git/Singular/longalg.h @ 36ff0ee

spielwiese
Last change on this file since 36ff0ee was 68a3b69, checked in by Olaf Bachmann <obachman@…>, 26 years ago
* made napWrite globally available git-svn-id: file:///usr/local/Singular/svn/trunk@1150 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.1 KB
Line 
1#ifndef LONGALG_H
2#define LONGALG_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: longalg.h,v 1.5 1998-02-17 15:05:53 obachman Exp $ */
7/*
8* ABSTRACT:   algebraic numbers
9*/
10#include "structs.h"
11#include "longrat.h"
12
13struct slnumber;
14typedef struct slnumber * lnumber;
15struct reca
16{
17  alg ne;
18  number ko;
19  int e[1];
20};
21struct slnumber
22{
23  alg z;
24  alg n;
25  BOOLEAN s;
26};
27
28extern int naNumbOfPar;             /* maximal number of parameters */
29extern alg naMinimalPoly;
30extern char **naParNames;
31
32void naSetChar(int p, BOOLEAN complete, char ** param, int pars);
33#ifdef LDEBUG
34void    naDBDelete (number *p,char *f, int l);
35#define naDelete(A) naDBDelete(A,__FILE__,__LINE__)
36#else
37void    naDelete (number *p);
38#endif
39number  naInit(int i);                              /* z := i */
40number  naPar(int i);                               /* z := par(i) */
41int     naParDeg(number n);                         /* i := deg(n) */
42int     naInt(number &n);
43void    naNumberToInt(number n, int *i);
44void    naNew(number *z);
45BOOLEAN naIsZero(number za);                         /* za = 0 ? */
46BOOLEAN naIsOne(number  za);                         /* za = 1 ? */
47BOOLEAN naIsMOne(number  za);                        /* za = -1 ? */
48BOOLEAN naEqual(number a, number b);                  /* a = b ? */
49BOOLEAN naGreater(number a, number b);                  /* dummy */
50number  naNeg(number za);                           /* za := - za */
51number  naInvers(number a);
52BOOLEAN naGreaterZero(number a);
53void    naPower(number x, int exp, number *lo);
54BOOLEAN naGreaterZero(number a);
55number  naCopy(number p);                              /* erg:= p */
56number  naAdd(number la, number li);               /* lu := la+li */
57number  naMult(number la, number li);              /* lo := la*li */
58number  naDiv(number la, number li);               /* lo := la/li */
59number  naIntDiv(number la, number li);            /* lo := la/li */
60//number  naIntMod(number la, number li);            /* lo := la/li */
61number  naSub(number la, number li);               /* lu := la-li */
62void    naNormalize(number &p);
63number  naGcd(number a, number b);
64number  naLcm(number a, number b);
65char *  naRead(char * s, number * p);
66void    naWrite(number &p);
67char *  naName(number n);
68BOOLEAN naSetMap(int c, char ** par, int nop, number minpol);
69#ifdef LDEBUG
70BOOLEAN naDBTest(number a, char *f,int l);
71#endif
72
73void    naSetIdeal(ideal I);
74
75// external access to the interna
76#define napoly alg
77#define RECA_SIZE (sizeof(alg)+sizeof(number))
78alg napAdd(alg p1, alg p2);
79void napDelete(alg *p);
80poly naPermNumber(number z, int * par_perm, int P);
81#define napVariables naNumbOfPar
82#define napNext(p) (p->ne)
83#define napGetCoeff(p) (p->ko)
84#define napGetExp(p,i) (p->e[(i)-1])
85#define napNew() ((alg)Alloc0(RECA_SIZE + naNumbOfPar * sizeof(int)))
86#define nanumber lnumber
87#define naGetNom(na)  (((nanumber)(na))->z)
88#define naGetDenom(na)  (((nanumber)(na))->n)
89extern number   (*nacCopy)(number a);
90extern BOOLEAN  (*nacIsZero)(number a);
91extern number   (*nacInit)(int i);
92extern void     (*nacNormalize)(number &a);
93extern void napWrite(alg l);
94#endif
95
Note: See TracBrowser for help on using the repository browser.