source: git/kernel/longalg.h @ eab144e

spielwiese
Last change on this file since eab144e was 85e68dd, checked in by Hans Schönemann <hannes@…>, 16 years ago
*hannes: gcc 4.2 git-svn-id: file:///usr/local/Singular/svn/trunk@10634 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.8 KB
Line 
1#ifndef LONGALG_H
2#define LONGALG_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: longalg.h,v 1.8 2008-03-19 17:44:09 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
17struct slnumber
18{
19  napoly z;
20  napoly n;
21  BOOLEAN s;
22  short cnt;
23};
24
25extern int naNumbOfPar;             /* maximal number of parameters */
26
27extern napoly naMinimalPoly;
28
29void naSetChar(int p, ring r);
30void    naDelete (number *p, const ring r);
31number  naInit(int i);                              /* z := i */
32number  naPar(int i);                               /* z := par(i) */
33int     naParDeg(number n);                         /* i := deg(n) */
34int     naSize(number n);                           /* size desc. */
35int     naInt(number &n);
36void    naNumberToInt(number n, int *i);
37void    naNew(number *z);
38BOOLEAN naIsZero(number za);                         /* za = 0 ? */
39BOOLEAN naIsOne(number  za);                         /* za = 1 ? */
40BOOLEAN naIsMOne(number  za);                        /* za = -1 ? */
41BOOLEAN naEqual(number a, number b);                  /* a = b ? */
42BOOLEAN naGreater(number a, number b);                  /* dummy */
43number  naNeg(number za);                           /* za := - za */
44number  naInvers(number a);
45BOOLEAN naGreaterZero(number a);
46void    naPower(number x, int exp, number *lo);
47BOOLEAN naGreaterZero(number a);
48number  naCopy(number p);                              /* erg:= p */
49number  na_Copy(number p, const ring r);               /* erg:= p */
50number  naAdd(number la, number li);               /* lu := la+li */
51number  naMult(number la, number li);              /* lo := la*li */
52number  naDiv(number la, number li);               /* lo := la/li */
53number  naIntDiv(number la, number li);            /* lo := la/li */
54//number  naIntMod(number la, number li);            /* lo := la/li */
55number  naSub(number la, number li);               /* lu := la-li */
56void    naNormalize(number &p);
57number  naGcd(number a, number b, const ring r);
58number  naLcm(number a, number b, const ring r);
59const char *  naRead(const char * s, number * p);
60void    naWrite(number &p);
61char *  naName(number n);
62nMapFunc naSetMap(ring src, ring dst);
63number naMap0P(number c);
64number naMap00(number c);
65#ifdef LDEBUG
66BOOLEAN naDBTest(number a, const char *f,const int l);
67#endif
68
69void    naSetIdeal(ideal I);
70
71// external access to the interna
72poly naPermNumber(number z, int * par_perm, int P, ring r);
73#define napAddExp(p,i,e)       (p_AddExp(p,i,e,currRing->algring))
74#define napLength(p)           pLength(p)
75#define napNeg(p)              (p_Neg(p,currRing->algring))
76#define napVariables           naNumbOfPar
77#define napNext(p)             pNext(p)
78#define napIter(p)             pIter(p)
79#define napGetCoeff(p)         pGetCoeff(p)
80#define napGetExp(p,i)         (p_GetExp(p,i,currRing->algring))
81#define napGetExpFrom(p,i,r)   (p_GetExp(p,i,r->algring))
82#define napSetExp(p,i,e)       (p_SetExp(p,i,e,currRing->algring))
83#define napDelete(p)           p_Delete(p, currRing->algring)
84#define nap_Delete(p,r)        p_Delete(p, (r)->algring)
85#define napNew()               (p_Init(currRing->algring))
86#define napAdd(p1,p2)          (p_Add_q(p1,p2,currRing->algring))
87#define napSetm(p)             p_Setm(p,currRing->algring)
88#define nanumber               lnumber
89#define naGetNom0(na)          (((nanumber)(na))->z)
90#define naGetDenom0(na)        (((nanumber)(na))->n)
91napoly napRemainder(napoly f, const napoly  g);
92extern number   (*nacCopy)(number a);
93extern BOOLEAN  (*nacIsZero)(number a);
94extern number   (*nacInit)(int i);
95extern void     (*nacNormalize)(number &a);
96extern void napWrite(napoly l,const BOOLEAN denom=TRUE);
97extern number   naGetDenom(number &n, const ring r);
98#endif
99
Note: See TracBrowser for help on using the repository browser.