source: git/Singular/longalg.h @ 6f2edc

spielwiese
Last change on this file since 6f2edc was 6ae4f5, checked in by Hans Schönemann <hannes@…>, 27 years ago
* hannes: - corrected scanner.l: parsing of strings in blocks: if (1) { write("","}"); } - corrected ipassign.cc: assignment of "dummy" types: DEF, NONE - corrected sleftv::Print(_), initialisation of _ - added conversion int->def - added CopyD(DEF) - in insert(..): object should not be of type NONE (lists.cc:lInsert0) - added int*intvec, int*intmat to iparith.cc git-svn-id: file:///usr/local/Singular/svn/trunk@145 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.3 1997-04-09 12:19:56 Singular Exp $ */
7/*
8* ABSTRACT:   algebraic numbers
9*/
10#include "longrat.h"
11
12struct reca;
13struct slnumber;
14typedef struct reca * alg;
15typedef struct slnumber * lnumber;
16struct reca
17{
18  alg ne;
19  number ko;
20  int e[1];
21};
22struct slnumber
23{
24  alg z;
25  alg n;
26  BOOLEAN s;
27};
28
29extern int naNumbOfPar;             /* maximal number of parameters */
30extern alg naMinimalPoly;
31extern char **naParNames;
32
33void naSetChar(int p, BOOLEAN complete, char ** param, int pars);
34#ifdef LDEBUG
35void    naDBDelete (number *p,char *f, int l);
36#define naDelete(A) naDBDelete(A,__FILE__,__LINE__)
37#else
38void    naDelete (number *p);
39#endif
40number  naInit(int i);                              /* z := i */
41number  naPar(int i);                               /* z := par(i) */
42int     naParDeg(number n);                         /* i := deg(n) */
43int     naInt(number &n);
44void    naNumberToInt(number n, int *i);
45void    naNew(number *z);
46BOOLEAN naIsZero(number za);                         /* za = 0 ? */
47BOOLEAN naIsOne(number  za);                         /* za = 1 ? */
48BOOLEAN naIsMOne(number  za);                        /* za = -1 ? */
49BOOLEAN naEqual(number a, number b);                  /* a = b ? */
50BOOLEAN naGreater(number a, number b);                  /* dummy */
51number  naNeg(number za);                           /* za := - za */
52number  naInvers(number a);
53BOOLEAN naGreaterZero(number a);
54void    naPower(number x, int exp, number *lo);
55BOOLEAN naGreaterZero(number a);
56number  naCopy(number p);                              /* erg:= p */
57number  naAdd(number la, number li);               /* lu := la+li */
58number  naMult(number la, number li);              /* lo := la*li */
59number  naDiv(number la, number li);               /* lo := la/li */
60number  naIntDiv(number la, number li);            /* lo := la/li */
61//number  naIntMod(number la, number li);            /* lo := la/li */
62number  naSub(number la, number li);               /* lu := la-li */
63void    naNormalize(number &p);
64number  naGcd(number a, number b);
65number  naLcm(number a, number b);
66char *  naRead(char * s, number * p);
67void    naWrite(number &p);
68char *  naName(number n);
69BOOLEAN naSetMap(int c, char ** par, int nop, number minpol);
70#ifdef LDEBUG
71BOOLEAN naDBTest(number a, char *f,int l);
72#endif
73
74void    naSetIdeal(ideal I);
75
76// external access to the interna
77#define napoly alg
78#define RECA_SIZE (sizeof(alg)+sizeof(number))
79alg napAdd(alg p1, alg p2);
80void napDelete(alg *p);
81poly naPermNumber(number z, int * par_perm, int P);
82#define napVariables naNumbOfPar
83#define napNext(p) (p->ne)
84#define napGetCoeff(p) (p->ko)
85#define napGetExp(p,i) (p->e[(i)-1])
86#define napNew() ((alg)Alloc0(RECA_SIZE + naNumbOfPar * sizeof(int)))
87#define nanumber lnumber
88#define naGetNom(na)  (((nanumber)(na))->z)
89#define naGetDenom(na)  (((nanumber)(na))->n)
90extern number   (*nacCopy)(number a);
91extern BOOLEAN  (*nacIsZero)(number a);
92extern number   (*nacInit)(int i);
93extern void     (*nacNormalize)(number &a);
94
95#endif
96
Note: See TracBrowser for help on using the repository browser.