 |
My Project
debian-1:4.1.2-p1+ds-2
|
Go to the source code of this file.
|
static void | copyT (kStrategy o, kStrategy n) |
|
static void | copyL (kStrategy o, kStrategy n) |
|
kStrategy | kStratCopy (kStrategy o) |
|
BOOLEAN | k_factorize (poly p, ideal &rfac, ideal &fac_copy) |
|
static void | completeReduceFac (kStrategy strat, ideal_list FL) |
|
ideal | bbafac (ideal, ideal Q, intvec *, kStrategy strat, ideal_list FL) |
|
ideal_list | kStdfac (ideal F, ideal Q, tHomog h, intvec **w, ideal D) |
|
◆ bbafac()
ideal bbafac |
( |
ideal |
, |
|
|
ideal |
Q, |
|
|
intvec * |
, |
|
|
kStrategy |
strat, |
|
|
ideal_list |
FL |
|
) |
| |
Definition at line 482 of file kstdfac.cc.
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]);
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);
◆ completeReduceFac()
static void completeReduceFac |
( |
kStrategy |
strat, |
|
|
ideal_list |
FL |
|
) |
| |
|
static |
Definition at line 273 of file kstdfac.cc.
287 for (si=strat->
sl; si>0; si--)
301 for(
i=strat->
tl;
i>=0;
i--)
337 if (n->
sl==-1) pos=0;
370 ideal r=
idAdd(n->
D,fac_copy);
376 Print(
"new s(%d)->D:\n",n->
nr);
382 fac_copy->m[
i]=
pCopy(fac->m[
i]);
398 Print(
"empty set s(%d) because D[%d]:",n->
nr,
j);
408 if (n->
S[
i]==n->
T[n->
tl].p)
436 if ((n->
sl>=0)&&(n->
S[0]!=
NULL))
443 Print(
"empty set because:L[%p]\n",(
void *)Lj);
452 if (n->
S[
i]==n->
T[n->
tl].p)
477 if ((strat->
Ll>=0) && (strat->
sl>=0))
break;
◆ copyL()
Definition at line 63 of file kstdfac.cc.
69 for (
j=0;
j<=o->
Ll;
j++)
107 l[
j].i_r1=n->
T[
i].i_r;
129 l[
j].i_r2=n->
T[
i].i_r;
135 l[
j].ecart=o->
L[
j].ecart;
137 l[
j].length=o->
L[
j].length;
139 l[
j].pLength=o->
L[
j].pLength;
141 l[
j].sev=o->
L[
j].sev;
142 l[
j].i_r = o->
L[
j].i_r;
◆ copyT()
◆ k_factorize()
BOOLEAN k_factorize |
( |
poly |
p, |
|
|
ideal & |
rfac, |
|
|
ideal & |
fac_copy |
|
) |
| |
Definition at line 237 of file kstdfac.cc.
244 fac_copy=
idInit(fac_elems,1);
250 Print(
"%d factors:\n",fac_elems);
253 while(ii>0) { ii--;
pWrite(fac->m[ii]); }
260 while(ii>0) {
PrintS(
"F"); ii--; }
◆ kStdfac()
ideal_list kStdfac |
( |
ideal |
F, |
|
|
ideal |
Q, |
|
|
tHomog |
h, |
|
|
intvec ** |
w, |
|
|
ideal |
D |
|
) |
| |
Definition at line 800 of file kstdfac.cc.
852 PrintS(
"====================================\n");
875 ideal_list LL=(ideal_list)
omAlloc(
sizeof(*LL));
888 ideal_list Lj=L->
next;
889 ideal_list Lj_prev=L;
901 Print(
"empty set L[%p] because:L[%p]\n",(
void*)Lj,(
void*)Li);
909 if (Lj==L) Lj_prev=
NULL;
913 while(Lj_prev->next!=Lj) Lj_prev=Lj_prev->next;
924 if (Lj!=
NULL) Lj=Lj->next;
938 orgstrat=strat->
next;
◆ kStratCopy()
Definition at line 149 of file kstdfac.cc.
175 s->sevT=(
unsigned long *)
omAlloc(o->
tmax*
sizeof(
unsigned long));
176 memcpy(
s->sevT,o->
sevT,o->
tmax*
sizeof(
unsigned long));
◆ strat_nr
BOOLEAN k_factorize(poly p, ideal &rfac, ideal &fac_copy)
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)
#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)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
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 void kDeleteLcm(LObject *P)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
EXTERN_VAR short * ecartWeights
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)