65#define SR_HDL(A) ((long)(A))
68#define INT_TO_SR(INT) ((number) (((long)INT << 2) + SR_INT))
69#define SR_TO_INT(SR) (((long)SR) >> 2)
90 return mpz_sizeinbase (nn->z, 2);
102 return ( q->s == 3 );
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
void nlGMP(number &i, mpz_t n, 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
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)
void nlMPZ(mpz_t m, number &n, const coeffs r)
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 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.
static int SI_LOG2_LONG(long v)