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)
91 return mpz_sizeinbase (nn->z, 2);
103 return ( q->s == 3 );
static int SI_LOG2(int v)
Coefficient rings, fields and other domains suitable for Singular polynomials.
#define n_Test(a, r)
BOOLEAN n_Test(number a, const coeffs r)
static FORCE_INLINE BOOLEAN nCoeff_is_Q(const coeffs r)
const Variable & v
< [in] a sqrfree bivariate poly
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
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
static FORCE_INLINE BOOLEAN nlIsInteger(number q, const coeffs r)
static FORCE_INLINE int nlQlogSize(number n, const coeffs r)
only used by slimgb (tgb.cc)
number nlMapGMP(number from, const coeffs src, const coeffs dst)
number nlModP(number q, const coeffs Q, const coeffs Zp)
number nlChineseRemainderSym(number *x, number *q, int rl, BOOLEAN sym, CFArray &inv_cache, const coeffs CF)
number nlGetDenom(number &n, const coeffs r)
BOOLEAN nlInitChar(coeffs, void *)
void nlDelete(number *a, const coeffs r)
number nlGetNumerator(number &n, const coeffs r)
BOOLEAN s
parameter s in number: 0 (or FALSE): not normalised rational 1 (or TRUE): normalised rational 3 : int...
void nlGMP(number &i, mpz_t n, const coeffs r)
void nlNormalize(number &x, const coeffs r)
void nlInpGcd(number &a, number b, const coeffs r)
'SR_INT' is the type of those integers small enough to fit into 29 bits.
The main handler for Singular numbers which are suitable for Singular polynomials.