495 if ((strat->
Ll==-1) && (strat->
sl>=0))
500 while (strat->
Ll >= 0)
518 strat->
P = strat->
L[strat->
Ll];
541 red_result = strat->
red(&strat->
P,strat);
542 if (strat->
P.p !=
NULL)
568 fac->m[0]=strat->
P.p;
603 if (n->
sl==-1) pos=0;
641 for(ii=0; ii<=n->
tl; ii++)
643 if (n->
R[ii]->p==n->
L[
i].p1) { n->
L[
i].i_r1=ii;
break; }
646 for(ii=0; ii<=n->
tl; ii++)
648 if (n->
R[ii]->p==n->
L[
i].p2) { n->
L[
i].i_r2=ii;
break; }
664 ideal r=
idAdd(n->
D,fac_copy);
676 fac_copy->m[
i]=
pCopy(fac->m[
i]);
692 Print(
"empty set s(%d) because: D[%d]:", n->
nr,
j);
704 if (n->
S[
i]==n->
T[n->
tl].p)
732 if ((n->
sl>=0)&&(n->
S[0]!=
NULL))
740 Print(
"empty set s(%d) because:L[%d]\n",n->
nr,Lj->nr);
742 Print(
"empty set s(%d) because:\n",n->
nr);
752 if (n->
S[
i]==n->
T[n->
tl].p)
781 if ((strat->
Ll==-1) && (strat->
sl>=0))
804 return (strat->
Shdl);
void(* enterS)(LObject &h, int pos, kStrategy strat, int atR)
void(* initEcart)(TObject *L)
int(* red)(LObject *L, kStrategy strat)
#define idDelete(H)
delete an ideal
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
ideal idAdd(ideal h1, ideal h2)
h1 + h2
KINLINE poly ksOldCreateSpoly(poly p1, poly p2, poly spNoether, ring r)
KINLINE poly redtailBba(poly p, int pos, kStrategy strat, BOOLEAN normalize)
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
static void completeReduceFac(kStrategy strat, ideal_list FL)
kStrategy kStratCopy(kStrategy o)
BOOLEAN k_factorize(poly p, ideal &rfac, ideal &fac_copy)
void message(int i, int *reduc, int *olddeg, kStrategy strat, int red_result)
void enterT(LObject &p, kStrategy strat, int atT)
BOOLEAN kTest_TS(kStrategy strat)
void enterpairs(poly h, int k, int ecart, int pos, kStrategy strat, int atR)
void exitBuchMora(kStrategy strat)
int posInS(const kStrategy strat, const int length, const poly p, const int ecart_p)
void updateResult(ideal r, ideal Q, kStrategy strat)
void deleteInL(LSet set, int *length, int j, kStrategy strat)
void messageSets(kStrategy strat)
void messageStat(int hilbcount, kStrategy strat)
static void kDeleteLcm(LObject *P)
void iiWriteMatrix(matrix im, const char *n, int dim, const ring r, int spaces)
set spaces to zero by default
#define omFreeSize(addr, size)
#define TEST_OPT_INTSTRATEGY
#define TEST_OPT_DEGBOUND
void pRestoreDegProcs(ring r, pFDegProc old_FDeg, pLDegProc old_lDeg)
static unsigned pLength(poly a)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
static void pLmFree(poly p)
frees the space of the monomial m, assumes m != NULL coef is not freed, m is not advanced
void pNorm(poly p, const ring R=currRing)
#define pCopy(p)
return a copy of the poly
void PrintS(const char *s)
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size