source: git/libpolys/coeffs/numbers.h @ 1f637e

spielwiese
Last change on this file since 1f637e was 6ed8c4, checked in by mlee <martinlee84@…>, 13 years ago
added const ring to some functions in linearAlgebra.* (TODO complete this) switched on compatibility layers in numbers.h and polys.h added nGreater macro to numbers.h commented out lists in ring.h moved lists dependend functions from linearAlgebra.* to linearAlgebra.cut
  • Property mode set to 100644
File size: 3.4 KB
Line 
1#ifndef NUMBERS_H
2#define NUMBERS_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id$ */
7/*
8* ABSTRACT: compatility interface to coeffs
9*/
10#include <coeffs/coeffs.h>
11
12// the access methods
13//
14// the routines w.r.t. currRing:
15// (should only be used in the context of currRing, i.e. in t
16#define nCopy(n)          n_Copy(n, currRing->cf)
17#define nDelete(n)        n_Delete(n, currRing->cf)
18#define nMult(n1, n2)     n_Mult(n1, n2, currRing->cf)
19#define nAdd(n1, n2)      n_Add(n1, n2, currRing->cf)
20#define nIsZero(n)        n_IsZero(n, currRing->cf)
21#define nEqual(n1, n2)    n_Equal(n1, n2, currRing->cf)
22#define nNeg(n)           n_Neg(n, currRing->cf)
23#define nSub(n1, n2)      n_Sub(n1, n2, currRing->cf)
24#define nGetChar()        nInternalChar(currRing->cf)
25#define nInit(i)          n_Init(i, currRing->cf)
26#define nIsOne(n)         n_IsOne(n, currRing->cf)
27#define nIsMOne(n)        n_IsMOne(n, currRing->cf)
28#define nGreaterZero(n)   n_GreaterZero(n, currRing->cf)
29#define nGreater(a, b)   n_Greater (a,b,currRing->cf)
30#define nWrite(n)         n_Write(n,currRing->cf)
31#define nNormalize(n)     n_Normalize(n,currRing->cf)
32#define nGcd(a, b)        n_Gcd(a,b,currRing->cf)
33#define nIntDiv(a, b)     n_IntDiv(a,b,currRing->cf)
34#define nDiv(a, b)        n_Div(a,b,currRing->cf)
35#define nInvers(a)        n_Invers(a,currRing->cf)
36#define nExactDiv(a, b)   n_ExactDiv(a,b,currRing->cf)
37#define nTest(a)          n_Test(a,currRing->cf)
38
39#define nInpMult(a, b)    n_InpMult(a,b,currRing->cf)
40#define nPower(a, b, res) n_Power(a,b,res,currRing->cf)
41#define nSize(n)          n_Size(n,currRing->cf)
42#define nGetDenom(N)      n_GetDenom((N),currRing->cf)
43#define nGetNumerator(N)  n_GetNumerator((N),currRing->cf)
44
45#define nSetMap(R)        n_SetMap(R,currRing->cf)
46
47
48// --------------------------------------------------------------
49// internal to coeffs, but public for all realizations
50
51#define SHORT_REAL_LENGTH 6 // use short reals for real <= 6 digits
52
53/* the dummy routines: */
54void nDummy1(number* d);
55void ndDelete(number* d, const coeffs r);
56number ndGcd(number a, number b, const coeffs);
57number ndCopy(number a, const coeffs r);
58number ndCopyMap(number a, const coeffs src, const coeffs dst);
59int ndSize(number a, const coeffs r);
60char * ndName(number n, const coeffs r);
61number ndGetDenom(number &n, const coeffs r);
62number ndGetNumerator(number &a,const coeffs r);
63number ndReturn0(number n, const coeffs r);
64number ndIntMod(number a, number b, const coeffs r);
65
66void   ndInpMult(number &a, number b, const coeffs r);
67void   ndInpAdd(number &a, number b, const coeffs r);
68
69void ndKillChar(coeffs);
70
71number  ndInit_bigint(number i, const coeffs dummy, const coeffs dst);
72
73BOOLEAN ndCoeffIsEqual(const coeffs r, n_coeffType n, void * parameter);
74
75/// Test whether a is a zero divisor in r
76/// i.e. not coprime with char. of r
77/// very inefficient implementation:
78/// should ONLY be used for debug stuff /tests
79BOOLEAN n_IsZeroDivisor( number a, const coeffs r);
80
81#ifdef LDEBUG
82void nDBDummy1(number* d,char *f, int l);
83BOOLEAN ndDBTest(number a, const char *f, const int l, const coeffs r);
84#endif
85
86#define nDivBy0 "div by 0"
87
88// dummy routines
89void   ndNormalize(number& d, const coeffs); // nNormalize...
90
91/// initialize an object of type coeff, return FALSE in case of success
92typedef BOOLEAN (*cfInitCharProc)(coeffs, void *);
93n_coeffType nRegister(n_coeffType n, cfInitCharProc p);
94
95#endif
Note: See TracBrowser for help on using the repository browser.