40#define poly_write(p) wrp(p);PrintLn()
158 tcp->second_poly =
i;
225 tso.isNotMinimal = (poly)1;
319Print(
"erzeuge Halbpaar im Module %d,%d mit: \n",
index,
tso.order);
339#ifndef USE_HEURISTIC2
342 (*result)[
i1] =
i1+1;
374 (**secondpairs)[
i2] =
i+1;
434 if ((
i>=
j) || (q==
NULL))
break;
451 if (q!=
NULL)
PrintS(
"Hier ist was schief gelaufen!\n");
469 (*tempV)[
i] = (*arg)[
i+
ii];
597PrintS(
"reduziere Paar mit: \n");
650PrintS(
"erhalte Paar mit: \n");
713 (*spl1)[
j2] = (*spl1)[
j2+1];
745Print(
"naechstes i ist: %d",
i);
859PrintS(
"reduziere Erzeuger: \n");
864PrintS(
"erhalte Erzeuger: \n");
879 PrintS(
"\nminimal generator: ");
891 if (deg-1>*maxdeg) *maxdeg = deg-1;
919 for (
int j=0;
j<
k;
j++)
1042Print(
"Bilde neue Paare in Modul %d!\n",
index);
1048Print(
"Bilde neue Paare in Modul %d!\n",
index+1);
1057PrintS(
"minimal resolution:\n");
1062PrintS(
"full resolution:\n");
1069Print(
"Criterion %d times applied\n",
crit);
static int si_min(const int a, const int b)
Coefficient rings, fields and other domains suitable for Singular polynomials.
static FORCE_INLINE number n_SubringGcd(number a, number b, const coeffs r)
static int show(unsigned long offset, char *close)
intvec * hFirstSeries(ideal A, intvec *module_w, ideal Q, intvec *wdegree)
#define idDelete(H)
delete an ideal
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
static BOOLEAN length(leftv result, leftv arg)
#define IMATELEM(M, I, J)
KINLINE poly ksOldCreateSpoly(poly p1, poly p2, poly spNoether, ring r)
void kBucketClear(kBucket_pt bucket, poly *p, int *length)
void kBucket_Minus_m_Mult_p(kBucket_pt bucket, poly m, poly p, int *l, poly spNoether)
Bpoly == Bpoly - m*p; where m is a monom Does not destroy p and m assume (*l <= 0 || pLength(p) == *l...
void kBucketDestroy(kBucket_pt *bucket_pt)
void kBucketInit(kBucket_pt bucket, poly lm, int length)
poly kBucketExtractLm(kBucket_pt bucket)
kBucket_pt kBucketCreate(const ring bucket_ring)
Creation/Destruction of buckets.
number kBucketPolyRed(kBucket_pt bucket, poly p1, int l1, poly spNoether)
const poly kBucketGetLm(kBucket_pt bucket)
int lcm(unsigned long *l, unsigned long *a, unsigned long *b, unsigned long p, int dega, int degb)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
#define omFreeSize(addr, size)
static int index(p_Length length, p_Ord ord)
static int pLength(poly a)
static long p_FDeg(const poly p, const ring r)
#define __p_Mult_nn(p, n, r)
void rChangeCurrRing(ring r)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Compatibility layer for legacy polynomial operations (over currRing)
static long pTotaldegree(poly p)
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL
#define pGetComp(p)
Component.
#define pLmDelete(p)
assume p != NULL, deletes Lm(p)->coef and Lm(p)
#define pLmDivisibleBy(a, b)
like pDivisibleBy, except that it is assumed that a!=NULL, b!=NULL
static void pLmFree(poly p)
frees the space of the monomial m, assumes m != NULL coef is not freed, m is not advanced
#define pGetExp(p, i)
Exponent.
#define pCopy(p)
return a copy of the poly
#define pLmDivisibleByNoComp(a, b)
like pLmDivisibleBy, does not check components
poly prCopyR(poly p, ring src_r, ring dest_r)
void PrintS(const char *s)
ring rAssure_dp_C(const ring r)
ideal idInit(int idsize, int rank)
initialise an ideal / module
long id_RankFreeModule(ideal s, ring lmRing, ring tailRing)
return the maximal component number found in any polynomial in s
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
static int idElem(const ideal F)
number of non-zero polys in F
syStrategy syHilb(ideal arg, int *length)
static void syCreateNewPairs_Hilb(syStrategy syzstr, int index, int actdeg)
static void syRedGenerOfCurrDeg_Hilb(syStrategy syzstr, int deg, int *maxindex, int *maxdeg)
void sySetNewHilb(syStrategy syzstr, int toSub, int index, int actord)
static void syReOrdResult_Hilb(syStrategy syzstr, int maxindex, int maxdeg)
static intvec * syLinStrat2(SSet nextPairs, syStrategy syzstr, int howmuch, int index, intvec **secondpairs)
static void syOrder_Hilb(poly p, syStrategy syzstr, int index)
void sySPRedSyz(syStrategy syzstr, sSObject redWith, poly q=NULL)
static poly syRed_Hilb(poly toRed, syStrategy syzstr, int index)
static void syRedNextPairs_Hilb(SSet nextPairs, syStrategy syzstr, int howmuch, int index, int actord, int *toSub, int *maxindex, int *maxdeg)
static void syHalfPair(poly syz, int newEl, syStrategy syzstr, int index)
void syCompactifyPairSet(SSet sPairs, int sPlength, int first)
SRes syInitRes(ideal arg, int *length, intvec *Tl, intvec *cw=NULL)
EXTERN_VAR long * currShiftedComponents
void syCompactify1(SSet sPairs, int *sPlength, int first)
EXTERN_VAR int * currcomponents
void syEnlargeFields(syStrategy syzstr, int index)
void syEnterPair(syStrategy syzstr, SObject *so, int *sPlength, int index)
SSet syChosePairs(syStrategy syzstr, int *index, int *howmuch, int *actdeg)
void syDeletePair(SObject *so)
int syInitSyzMod(syStrategy syzstr, int index, int init=17)