488 if ((strat->
Ll==-1) && (strat->
sl>=0))
493 while (strat->
Ll >= 0)
511 strat->
P = strat->
L[strat->
Ll];
534 red_result = strat->
red(&strat->
P,strat);
535 if (strat->
P.p !=
NULL)
561 fac->m[0]=strat->
P.p;
596 if (n->
sl==-1) pos=0;
634 for(ii=0; ii<=n->
tl; ii++)
636 if (n->
R[ii]->p==n->
L[i].p1) { n->
L[
i].i_r1=ii;
break; }
639 for(ii=0; ii<=n->
tl; ii++)
641 if (n->
R[ii]->p==n->
L[i].p2) { n->
L[
i].i_r2=ii;
break; }
657 ideal r=
idAdd(n->
D,fac_copy);
669 fac_copy->m[
i]=
pCopy(fac->m[i]);
678 if (n->
D->m[j]!=
NULL)
685 Print(
"empty set s(%d) because: D[%d]:", n->
nr,j);
697 if (n->
S[i]==n->
T[n->
tl].p)
725 if ((n->
sl>=0)&&(n->
S[0]!=
NULL))
733 Print(
"empty set s(%d) because:L[%d]\n",n->
nr,Lj->nr);
735 Print(
"empty set s(%d) because:\n",n->
nr);
745 if (n->
S[i]==n->
T[n->
tl].p)
774 if ((strat->
Ll==-1) && (strat->
sl>=0))
797 return (strat->
Shdl);
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
EXTERN_VAR short * ecartWeights
#define TEST_OPT_DEGBOUND
void message(int i, int *reduc, int *olddeg, kStrategy strat, int red_result)
#define idDelete(H)
delete an ideal
void messageStat(int hilbcount, kStrategy strat)
#define omFreeSize(addr, size)
void enterpairs(poly h, int k, int ecart, int pos, kStrategy strat, int atR)
KINLINE poly ksOldCreateSpoly(poly p1, poly p2, poly spNoether, ring r)
static void kDeleteLcm(LObject *P)
int(* red)(LObject *L, kStrategy strat)
KINLINE poly redtailBba(poly p, int pos, kStrategy strat, BOOLEAN normalize)
void iiWriteMatrix(matrix im, const char *n, int dim, const ring r, int spaces)
set spaces to zero by default
void enterT(LObject &p, kStrategy strat, int atT)
void deleteInL(LSet set, int *length, int j, kStrategy strat)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
void(* initEcart)(TObject *L)
#define TEST_OPT_INTSTRATEGY
kStrategy kStratCopy(kStrategy o)
void(* enterS)(LObject &h, int pos, kStrategy strat, int atR)
void PrintS(const char *s)
static unsigned pLength(poly a)
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
void pRestoreDegProcs(ring r, pFDegProc old_FDeg, pLDegProc old_lDeg)
static void completeReduceFac(kStrategy strat, ideal_list FL)
void pNorm(poly p, const ring R=currRing)
int posInS(const kStrategy strat, const int length, const poly p, const int ecart_p)
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 ...
BOOLEAN k_factorize(poly p, ideal &rfac, ideal &fac_copy)
ideal idAdd(ideal h1, ideal h2)
h1 + h2
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
void exitBuchMora(kStrategy strat)
#define pCopy(p)
return a copy of the poly