58 poly &m1, poly &m2,
const ring m_r)
65 for (
i = p_r->N;
i;
i--)
83 if (cp1 != 0 && cp2 != 0)
85 while (cp1%2 == 0 && cp2%2 == 0)
126 Print(
"%d-step RedNF - g=", c);
154 if (rside ==
NULL)
return -1;
209 while (
h !=
NULL &&
i >= 0) {
235 PrintS(
"Not reduced to zero from I: ");
244 PrintS(
" Yes!\nspoly --> 0?");
275 PrintS(
" Yes!\nzero-spoly --> 0?");
static FORCE_INLINE number n_Gcd(number a, number b, const coeffs r)
in Z: return the gcd of 'a' and 'b' in Z/nZ, Z/2^kZ: computed as in the case Z in Z/pZ,...
static FORCE_INLINE number n_Ann(number a, const coeffs r)
if r is a ring with zero divisors, return an annihilator!=0 of b otherwise return NULL
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
static FORCE_INLINE BOOLEAN n_IsOne(number n, const coeffs r)
TRUE iff 'n' represents the one element.
KINLINE BOOLEAN k_GetLeadTerms(const poly p1, const poly p2, const ring p_r, poly &m1, poly &m2, const ring m_r)
int ksCheckCoeff(number *a, number *b, const coeffs r)
poly kFindZeroPoly(poly input_p, ring leadRing, ring tailRing)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
static long p_GetExpDiff(poly p1, poly p2, int i, ring r)
static poly pp_Mult_mm(poly p, poly m, const ring r)
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent @Note: VarOffset encodes the position in p->exp
static void p_Setm(poly p, const ring r)
static number p_SetCoeff(poly p, number n, ring r)
static BOOLEAN p_LmDivisibleBy(poly a, poly b, const ring r)
static poly p_Mult_mm(poly p, poly m, const ring r)
static poly p_Init(const ring r, omBin bin)
static poly p_Copy(poly p, const ring r)
returns a copy of p
#define __p_Mult_nn(p, n, r)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Compatibility layer for legacy polynomial operations (over currRing)
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL
#define pLmDelete(p)
assume p != NULL, deletes Lm(p)->coef and Lm(p)
#define pCopy(p)
return a copy of the poly
void PrintS(const char *s)
static BOOLEAN rField_is_Domain(const ring r)
poly reduce_poly_fct(poly p, ring r)
poly ringNF(poly f, ideal G, ring r)
int findRingSolver(poly rside, ideal G, ring r)
void printPolyMsg(const char *start, poly f, const char *end)
poly plain_spoly(poly f, poly g)
poly spolyRing2toM(poly f, poly g, ring r)
BOOLEAN ring2toM_GetLeadTerms(const poly p1, const poly p2, const ring p_r, poly &m1, poly &m2, const ring m_r)
poly plain_zero_spoly(poly h)
poly ringRedNF(poly f, ideal G, ring r)
int testGB(ideal I, ideal GI)