72{
77 {
78
81 {
86 }
87
89
91
93 {
96 {
100 }
101 else
103 }
104 mpz_t nn; mpz_init(nn);
106 if (mpz_cmp(nn,prod2)>0) mpz_sub(nn,nn,
prod);
109 else
110 {
111
115 }
116 }
119 return res_p;
120}
static FORCE_INLINE long n_Int(number &n, const coeffs r)
conversion of n to an int; 0 if not possible in Z/pZ: the representing int lying in (-p/2 ....
static FORCE_INLINE BOOLEAN n_IsZero(number n, const coeffs r)
TRUE iff 'n' represents the zero element.
static FORCE_INLINE number n_InitMPZ(mpz_t n, const coeffs r)
conversion of a GMP integer to number
static void CRT(mpz_t x, mpz_ptr *v, mpz_ptr *C, mpz_ptr *m, int t)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
static number p_SetCoeff(poly p, number n, ring r)
static poly pReverse(poly p)
static poly p_Head(const poly p, const ring r)
copy the (leading) term of p
static int p_LmCmp(poly p, poly q, const ring r)
static void p_Delete(poly *p, const ring r)
static poly p_LmFreeAndNext(poly p, ring)