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 nInpNeg(n) n_InpNeg(n, currRing->cf) 23 #define nSub(n1, n2) n_Sub(n1, n2, currRing->cf) 24 #define nGetChar() n_GetChar(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, rShortOut(currRing)) 31 #define nNormalize(n) n_Normalize(n,currRing->cf) 32 #define nGcd(a,b) n_Gcd(a,b,currRing->cf) 33 #define nDiv(a, b) n_Div(a,b,currRing->cf) 34 #define nInvers(a) n_Invers(a,currRing->cf) 35 #define nExactDiv(a, b) n_ExactDiv(a,b,currRing->cf) 36 #define nTest(a) n_Test(a,currRing->cf) 38 #define nInpMult(a, b) n_InpMult(a,b,currRing->cf) 39 #define nPower(a, b, res) n_Power(a,b,res,currRing->cf) 40 #define nSize(n) n_Size(n,currRing->cf) 41 #define nGetDenom(N) n_GetDenom((N),currRing->cf) 42 #define nGetNumerator(N) n_GetNumerator((N),currRing->cf) 44 #define nSetMap(R) n_SetMap(R,currRing->cf) 47 #define nPrint(a) n_Print(a,currRing->cf) 55 #if SIZEOF_DOUBE == SIZEOF_LONG 56 #define SHORT_REAL_LENGTH 16 // use double for real <= 15 digits 58 #define SHORT_REAL_LENGTH 6 // use float for real <= 6 digits 112 char*
nEati(
char *
s,
int *
i,
int m);
number ndGcd(number a, number b, const coeffs)
const CanonicalForm int s
coeffs nFindCoeffByName(char *n)
find an existing coeff by its "CoeffName"
char * nEati(char *s, int *i, int m)
divide by the first (leading) number and return it, i.e. make monic
BOOLEAN(* cfInitCharProc)(coeffs, void *)
initialize an object of type coeff, return FALSE in case of success
char * nEatLong(char *s, mpz_ptr i)
extracts a long integer from s, returns the rest
Coefficient rings, fields and other domains suitable for Singular polynomials.
The main handler for Singular numbers which are suitable for Singular polynomials.
const char *const nDivBy0
n_coeffType nRegister(n_coeffType n, cfInitCharProc p)
number ndCopyMap(number a, const coeffs src, const coeffs dst)
CanonicalForm ndConvSingNFactoryN(number, BOOLEAN, const coeffs)
BOOLEAN n_IsZeroDivisor(number a, const coeffs r)
Test whether a is a zero divisor in r i.e. not coprime with char. of r very inefficient implementatio...
void nRegisterCfByName(cfInitCfByNameProc p, n_coeffType n)
coeffs(* cfInitCfByNameProc)(char *s, n_coeffType n)
initialize an object of type coeffs by its name, return NULL otherwise