#define pLmCmp(p, q)
returns 0|1|-1 if p=q|p>q|p
static short rVar(const ring r)
#define rVar(r) (r->N)
void enterpairs(poly h, int k, int ecart, int pos, kStrategy strat, int atR)
poly nc_rat_ReduceSpolyNew(const poly p1, poly p2, int ishift, const ring r)
static long p_Totaldegree(poly p, const ring r)
void(* initEcartPair)(LObject *h, poly f, poly g, int ecartF, int ecartG)
poly nc_CreateShortSpoly(poly p1, poly p2, const ring r)
void enterL(LSet *set, int *length, int *LSetmax, LObject p, int at)
int(* red)(LObject *L, kStrategy strat)
static bool rIsPluralRing(const ring r)
we must always have this test!
KINLINE poly redtailBba(poly p, int pos, kStrategy strat, BOOLEAN normalize)
int(* posInT)(const TSet T, const int tl, LObject &h)
static void p_LmFree(poly p, ring)
static poly p_Copy(poly p, const ring r)
returns a copy of p
poly gnc_ReduceSpolyNew(const poly p1, poly p2, const ring r)
void enterT(LObject &p, kStrategy strat, int atT)
void deleteInL(LSet set, int *length, int j, kStrategy strat)
void(* initEcart)(TObject *L)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
#define pGetExp(p, i)
Exponent.
void ratGB_divide_out(poly p)
void initEcartPairMora(LObject *Lp, poly, poly, int ecartF, int ecartG)
#define TEST_OPT_INTSTRATEGY
int redGrRatGB(LObject *h, kStrategy strat)
void initEcartBBA(TObject *h)
void(* enterS)(LObject &h, int pos, kStrategy strat, int atR)
static poly nc_ReduceSpoly(const poly p1, poly p2, const ring r)
int posInL0(const LSet set, const int length, LObject *p, const kStrategy)
#define pIsConstant(p)
like above, except that Comp might be != 0
poly nc_rat_CreateSpoly(poly pp1, poly pp2, int ishift, const ring r)
void initBuchMoraCrit(kStrategy strat)
void PrintS(const char *s)
static BOOLEAN p_LmDivisibleByPart(poly a, poly b, const ring r, const int start, const int end)
ideal k_gnc_gr_mora(const ideal F, const ideal Q, const intvec *, const intvec *, kStrategy strat, const ring _currRing)
void rWrite(ring r, BOOLEAN details)
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL ...
void p_Content(poly ph, const ring r)
static BOOLEAN p_LmDivisibleBy(poly a, poly b, const ring r)
void rChangeCurrRing(ring r)
int redGrFirst(LObject *h, kStrategy strat)
static void p_Delete(poly *p, const ring r)
BOOLEAN p_LmIsConstantRat(const poly p, const ring r)
#define pDivisibleBy(a, b)
returns TRUE, if leading monom of a divides leading monom of b i.e., if there exists a expvector c > ...
int posInT110(const TSet set, const int length, LObject &p)
void pNorm(poly p, const ring R=currRing)
int posInS(const kStrategy strat, const int length, const poly p, const int ecart_p)
void completeReduce(kStrategy strat, BOOLEAN withT)
void updateResult(ideal r, ideal Q, kStrategy strat)
static void pLmFree(poly p)
frees the space of the monomial m, assumes m != NULL coef is not freed, m is not advanced ...
KINLINE void clearS(poly p, unsigned long p_sev, int *at, int *k, kStrategy strat)
static poly nc_CreateSpoly(const poly p1, const poly p2, const ring r)
void p_wrp(poly p, ring lmRing, ring tailRing)
void initEcartNormal(TObject *h)
poly p_Cleardenom(poly p, const ring r)
static bool rIsRatGRing(const ring r)
void exitBuchMora(kStrategy strat)
void enterSBba(LObject &p, int atS, kStrategy strat, int atR)