source: git/libpolys/polys/ext_fields/longalg.h @ 18dab28

spielwiese
Last change on this file since 18dab28 was 18dab28, checked in by Hans Schoenemann <hannes@…>, 13 years ago
fix unseless includes of polys-impl.h
  • Property mode set to 100644
File size: 3.6 KB
RevLine 
[a6904c]1#ifndef LONGALG_H
2#define LONGALG_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: longalg.h 12749 2010-04-27 14:17:56Z hannes $ */
7/*
8* ABSTRACT:   algebraic numbers
9*/
[20b794]10#include <coeffs/coeffs.h>
11#include <coeffs/longrat.h>
[6fd69c]12#include <polys/monomials/ring.h>
[20b794]13#include <polys/ext_fields/longtrans.h>
[a6904c]14
[3dbee61]15#define ALLOC_LNUMBER() (lnumber)omAllocBin(rnumber_bin)
16#define ALLOC0_LNUMBER() (lnumber)omAlloc0Bin(rnumber_bin)
17#define FREE_LNUMBER(x) omFreeBin((ADDRESS)x, rnumber_bin)
18
19
20typedef polyrec *   napoly;
[21972b]21
[3dbee61]22struct slnumber;
23typedef struct slnumber * lnumber;
24
25struct slnumber
[a6904c]26{
[6fd69c]27  int anz;
28  poly *liste;
[a6904c]29};
[6fd69c]30typedef struct snaIdeal * naIdeal;
31extern omBin snaIdeal_bin;
32extern naIdeal naI;
33extern poly naMinimalPoly;
[9a07cd]34
[3dbee61]35void naSetChar(int p, ring r);
36void    naDelete (number *p, const ring r);
37number  naInit(int i, const ring r);                /* z := i */
38number  naPar(int i);                               /* z := par(i) */
39int     naParDeg(number n);                         /* i := deg(n) */
40int     naSize(number n);                           /* size desc. */
41int     naInt(number &n, const ring r);
42BOOLEAN naIsZero(number za);                         /* za = 0 ? */
43BOOLEAN naIsOne(number  za);                         /* za = 1 ? */
44BOOLEAN naIsMOne(number  za);                        /* za = -1 ? */
45BOOLEAN naEqual(number a, number b);                  /* a = b ? */
46BOOLEAN naGreater(number a, number b);                  /* dummy */
47number  naNeg(number za);                           /* za := - za */
48number  naInvers(number a);
49void    naPower(number x, int exp, number *lo);
50BOOLEAN naGreaterZero(number a);
51number  naCopy(number p);                              /* erg:= p */
52number  na_Copy(number p, const ring r);               /* erg:= p */
53number  naAdd(number la, number li);               /* lu := la+li */
54number  naMult(number la, number li);              /* lo := la*li */
55number  naDiv(number la, number li);               /* lo := la/li */
56number  naIntDiv(number la, number li);            /* lo := la/li */
57//number  naIntMod(number la, number li);            /* lo := la/li */
58number  naSub(number la, number li);               /* lu := la-li */
59void    naNormalize(number &p);
60number  naGcd(number a, number b, const ring r);
61number  naLcm(number a, number b, const ring r);
[a6904c]62const char *  naRead(const char * s, number * p);
[3dbee61]63void    naWrite(number &p, const ring r);
64char *  naName(number n);
65nMapFunc naSetMap(const ring src, const ring dst);
66number naMap0P(number c);
67number naMap00(number c);
[a6904c]68#ifdef LDEBUG
[3dbee61]69BOOLEAN naDBTest(number a, const char *f,const int l);
[a6904c]70#endif
71
[3dbee61]72void    naSetIdeal(ideal I);
73
74// external access to the interna
75poly naPermNumber(number z, int * par_perm, int P, ring r);
76#define napAddExp(p,i,e)       (p_AddExp(p,i,e,currRing->algring))
77#define napLength(p)           pLength(p)
78#define napNeg(p)              (p_Neg(p,currRing->algring))
79#define napVariables           naNumbOfPar
80#define napGetCoeff(p)         pGetCoeff(p)
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 napNew()               (p_Init(currRing->algring))
84#define napAdd(p1,p2)          (p_Add_q(p1,p2,currRing->algring))
85#define napSetm(p)             p_Setm(p,currRing->algring)
86#define nanumber               lnumber
87napoly napRemainder(napoly f, const napoly  g);
88number   naGetDenom(number &n, const ring r);
89number   naGetNumerator(number &n, const ring r);
90number  napGetDenom(number &n, const ring r);
91number  napGetNumerator(number &n, const ring r);
92poly    napPermNumber(number z, int * par_perm, int P, ring r);
[a6904c]93#endif
94
Note: See TracBrowser for help on using the repository browser.