66 #define SR_HDL(A) ((long)(A)) 69 #define INT_TO_SR(INT) ((number) (((long)INT << 2) + SR_INT)) 70 #define SR_TO_INT(SR) (((long)SR) >> 2) 87 v = (i >= 0) ? i : -i;
98 return mpz_sizeinbase (nn->z, 2);
110 return ( q->s == 3 );
'SR_INT' is the type of those integers small enough to fit into 29 bits.
static FORCE_INLINE BOOLEAN nlIsInteger(number q, const coeffs r)
number nlInit2(int i, int j, const coeffs r)
create a rational i/j (implicitly) over Q NOTE: make sure to use correct Q in debug mode ...
static FORCE_INLINE int nlQlogSize(number n, const coeffs r)
only used by slimgb (tgb.cc)
number nlChineseRemainderSym(number *x, number *q, int rl, BOOLEAN sym, CFArray &inv_cache, const coeffs CF)
void nlGMP(number &i, mpz_t n, const coeffs r)
static FORCE_INLINE BOOLEAN nCoeff_is_Q(const coeffs r)
number nlMapGMP(number from, const coeffs src, const coeffs dst)
number nlGetDenom(number &n, const coeffs r)
Coefficient rings, fields and other domains suitable for Singular polynomials.
BOOLEAN s
parameter s in number: 0 (or FALSE): not normalised rational 1 (or TRUE): normalised rational 3 : int...
The main handler for Singular numbers which are suitable for Singular polynomials.
BOOLEAN nlInitChar(coeffs, void *)
number nlModP(number q, const coeffs Q, const coeffs Zp)
#define n_Test(a, r)
BOOLEAN n_Test(number a, const coeffs r)
void nlDelete(number *a, const coeffs r)
number nlInit2gmp(mpz_t i, mpz_t j, const coeffs r)
create a rational i/j (implicitly) over Q NOTE: make sure to use correct Q in debug mode ...
const Variable & v
< [in] a sqrfree bivariate poly
void nlInpGcd(number &a, number b, const coeffs r)
void nlNormalize(number &x, const coeffs r)
static FORCE_INLINE int n_Size(number n, const coeffs r)
return a non-negative measure for the complexity of n; return 0 only when n represents zero; (used fo...
number nlGetNumerator(number &n, const coeffs r)