 |
My Project
debian-1:4.1.1-p2+ds-4build1
|
Go to the documentation of this file.
36 for (
j=0;
j<=o->
tl;
j++)
73 for (
j=0;
j<=o->
Ll;
j++)
111 l[
j].i_r1=n->
T[
i].i_r;
133 l[
j].i_r2=n->
T[
i].i_r;
139 l[
j].ecart=o->
L[
j].ecart;
141 l[
j].length=o->
L[
j].length;
143 l[
j].pLength=o->
L[
j].pLength;
145 l[
j].sev=o->
L[
j].sev;
146 l[
j].i_r = o->
L[
j].i_r;
179 s->sevT=(
unsigned long *)
omAlloc(o->
tmax*
sizeof(
unsigned long));
180 memcpy(
s->sevT,o->
sevT,o->
tmax*
sizeof(
unsigned long));
251 fac_copy=
idInit(fac_elems,1);
257 Print(
"%d factors:\n",fac_elems);
260 while(ii>0) { ii--;
pWrite(fac->m[ii]); }
267 while(ii>0) {
PrintS(
"F"); ii--; }
294 for (si=strat->
sl; si>0; si--)
308 for(
i=strat->
tl;
i>=0;
i--)
344 if (n->
sl==-1) pos=0;
377 ideal r=
idAdd(n->
D,fac_copy);
383 Print(
"new s(%d)->D:\n",n->
nr);
389 fac_copy->m[
i]=
pCopy(fac->m[
i]);
405 Print(
"empty set s(%d) because D[%d]:",n->
nr,
j);
415 if (n->
S[
i]==n->
T[n->
tl].p)
443 if ((n->
sl>=0)&&(n->
S[0]!=
NULL))
450 Print(
"empty set because:L[%p]\n",(
void *)Lj);
459 if (n->
S[
i]==n->
T[n->
tl].p)
484 if ((strat->
Ll>=0) && (strat->
sl>=0))
break;
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);
859 PrintS(
"====================================\n");
882 ideal_list LL=(ideal_list)
omAlloc(
sizeof(*LL));
895 ideal_list Lj=L->
next;
896 ideal_list Lj_prev=L;
908 Print(
"empty set L[%p] because:L[%p]\n",(
void*)Lj,(
void*)Li);
916 if (Lj==L) Lj_prev=
NULL;
920 while(Lj_prev->next!=Lj) Lj_prev=Lj_prev->next;
931 if (Lj!=
NULL) Lj=Lj->next;
945 orgstrat=strat->
next;
BOOLEAN k_factorize(poly p, ideal &rfac, ideal &fac_copy)
ideal_list kStdfac(ideal F, ideal Q, tHomog h, intvec **w, ideal D)
void initBuchMoraCrit(kStrategy strat)
void pNorm(poly p, const ring R=currRing)
void pRestoreDegProcs(ring r, pFDegProc old_FDeg, pLDegProc old_lDeg)
void(* enterS)(LObject &h, int pos, kStrategy strat, int atR)
#define idDelete(H)
delete an ideal
static void pLmFree(poly p)
frees the space of the monomial m, assumes m != NULL coef is not freed, m is not advanced
#define TEST_OPT_DEGBOUND
static BOOLEAN idHomIdeal(ideal id, ideal Q=NULL)
ideal idAdd(ideal h1, ideal h2)
h1 + h2
int(* posInLOld)(const LSet Ls, const int Ll, LObject *Lo, const kStrategy strat)
void(* chainCrit)(poly p, int ecart, kStrategy strat)
ideal singclap_factorize(poly f, intvec **v, int with_exps, const ring r)
static poly p_LmInit(poly p, const ring r)
void updateResult(ideal r, ideal Q, kStrategy strat)
kStrategy kStratCopy(kStrategy o)
int posInS(const kStrategy strat, const int length, const poly p, const int ecart_p)
static void copyL(kStrategy o, kStrategy n)
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
void iiWriteMatrix(matrix im, const char *n, int dim, const ring r, int spaces)
set spaces to zero by default
static unsigned pLength(poly a)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
#define TEST_OPT_INTSTRATEGY
long id_RankFreeModule(ideal s, ring lmRing, ring tailRing)
return the maximal component number found in any polynomial in s
void PrintS(const char *s)
#define omFreeSize(addr, size)
void message(int i, int *reduc, int *olddeg, kStrategy strat, int red_result)
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
long kModDeg(poly p, ring r)
int(* posInL)(const LSet set, const int length, LObject *L, const kStrategy strat)
void exitBuchMora(kStrategy strat)
static LSet initL(int nr=setmaxL)
void initBuchMora(ideal F, ideal Q, kStrategy strat)
#define pInit()
allocates a new monomial and initializes everything to 0
poly p_Cleardenom(poly p, const ring r)
void initBuchMoraPos(kStrategy strat)
void messageStat(int hilbcount, kStrategy strat)
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
#define pLmInit(p)
like pInit, except that expvector is initialized to that of p, p must be != NULL
static void completeReduceFac(kStrategy strat, ideal_list FL)
void initBba(kStrategy strat)
KINLINE poly redtailBba(poly p, int pos, kStrategy strat, BOOLEAN normalize)
void pSetDegProcs(ring r, pFDegProc new_FDeg, pLDegProc new_lDeg)
void(* initEcartPair)(LObject *h, poly f, poly g, int ecartF, int ecartG)
ideal idInit(int idsize, int rank)
initialise an ideal / module
static BOOLEAN idHomModule(ideal m, ideal Q, intvec **w)
ideal bbafac(ideal, ideal Q, intvec *, kStrategy strat, ideal_list FL)
static BOOLEAN rField_has_simple_inverse(const ring r)
void deleteInL(LSet set, int *length, int j, kStrategy strat)
void(* initEcart)(TObject *L)
const CanonicalForm int s
int(* red)(LObject *L, kStrategy strat)
void enterpairs(poly h, int k, int ecart, int pos, kStrategy strat, int atR)
#define pCopy(p)
return a copy of the poly
int(* posInT)(const TSet T, const int tl, LObject &h)
void deleteInS(int i, kStrategy strat)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
void enterT(LObject &p, kStrategy strat, int atT)
static void copyT(kStrategy o, kStrategy n)
void(* enterOnePair)(int i, poly p, int ecart, int isFromQ, kStrategy strat, int atR)
KINLINE poly ksOldCreateSpoly(poly p1, poly p2, poly spNoether, ring r)