41#define WITH_SCHREYER_ORD
69 (*
old_hilb1)[
i] = (*old_hilbs)[
i]-(*shifted_old_hilbs)[
i];
98 Print(
"aktueller hoechster index ist: %d\n",(*
syzstr->Tl)[
i]);
99 Print(
"der %d-te modul ist:\n",
i);
101 PrintS(
"Seine Darstellung:\n");
247 if (resPairs[
i].p1!=
NULL)
249 if (resPairs[
i].p2!=
NULL)
292 PrintS(
"error in the resolvent\n");
327 while ((
l>0) && ((*resPairs)[
l-1].
lcm==
NULL))
l--;
359 if ((*resPairs)[
jj].ind1>=
j) (*resPairs)[
jj].ind1++;
360 if ((*resPairs)[
jj].ind2>=
j) (*resPairs)[
jj].ind2++;
397 while ((
ti<
l) && (((*resPairs)[
ti].ind1!=
j1)|| ((*resPairs)[
ti].ind2!=
jj)))
ti++;
431 temp[
ll].ind1 = (*resPairs)[
ll].ind1;
432 temp[
ll].ind2 = (*resPairs)[
ll].ind2;
433 temp[
ll].syzind = (*resPairs)[
ll].syzind;
434 temp[
ll].order = (*resPairs)[
ll].order;
435 temp[
ll].isNotMinimal = (*resPairs)[
ll].isNotMinimal;
521 while ((
i>0) && (red->m[
i-1]==
NULL))
i--;
587 if ((
j>=
i) || (
p==
NULL))
break;
767Print(
"reduziere Paar im Module %d mit: \n",
index);
844 PrintS(
"Shit happens!\n");
847Print(
"erhalte Paar im Module %d mit: \n",
index);
873 (resPairs[
i].ind1)--;
875 (resPairs[
i].ind2)--;
964 while (resPairs[
i].order==
actdeg)
977 else if (resPairs[0].
lcm==
NULL)
984 actdeg = resPairs[0].order;
1009 WerrorS(
"Hier ist was faul!\n");
1067 while ((
l>0) && ((*resPairs)[
l-1].
lcm==
NULL))
l--;
1103 while ((
ti<
l) && (((*resPairs)[
ti].ind1!=
j1)|| ((*resPairs)[
ti].ind2!=
j)))
ti++;
1135 temp[
ll].syz = (*resPairs)[
ll].syz;
1136 temp[
ll].lcm = (*resPairs)[
ll].lcm;
1137 temp[
ll].ind1 = (*resPairs)[
ll].ind1;
1138 temp[
ll].ind2 = (*resPairs)[
ll].ind2;
1139 temp[
ll].syzind = (*resPairs)[
ll].syzind;
1140 temp[
ll].order = (*resPairs)[
ll].order;
1141 temp[
ll].isNotMinimal = (*resPairs)[
ll].isNotMinimal;
1160Print(
"erzeuge Paar im Modul %d,%d mit: \n",
index,
tso.order);
1284Print(
"reduziere Paar im Module %d mit: \n",
index);
1319 PrintS(
"Shit happens!\n");
1322Print(
"erhalte Paar im Module %d mit: \n",
index);
1353 (*next_place_add)++;
1445#ifdef USE_REGULARITY
1446 if (
syzstr->regularity>0)
1504#ifdef WITH_SCHREYER_ORD
1734#ifdef WITH_SCHREYER_ORD
1746PrintS(
"Add new generators:\n");
1748PrintS(
"with representations:\n");
1803 if (
jj>maxdeg) maxdeg =
jj;
1831#ifdef USE_REGULARITY
1882#ifdef USE_REGULARITY
1915 PrintS(
"\n not regular\n");
1958 Print(
"The %d-th syzygy-module is now:\n",
index);
2000 PrintS(
"Da ist was faul!!!\n");
2001 Print(
"Aber: Regularitaet %d, Grad %ld\n",
static int si_max(const int a, const int b)
static FORCE_INLINE number n_Gcd(number a, number b, const coeffs r)
in Z: return the gcd of 'a' and 'b' in Z/nZ, Z/2^kZ: computed as in the case Z in Z/pZ,...
void WerrorS(const char *s)
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
poly initial(const poly p, const ring r, const gfan::ZVector &w)
Returns the initial form of p with respect to w.
static BOOLEAN length(leftv result, leftv arg)
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)
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)
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
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)
#define omRealloc0Size(addr, o_size, size)
static int index(p_Length length, p_Ord ord)
void p_Shift(poly *p, int i, const ring r)
shifts components of the vector p by i
void pEnlargeSet(poly **p, int l, int increment)
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)
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL
#define pGetComp(p)
Component.
#define pSetCoeff(p, n)
deletes old coeff before setting the new one
#define pLmDelete(p)
assume p != NULL, deletes Lm(p)->coef and Lm(p)
#define pGetExp(p, i)
Exponent.
#define pSetmComp(p)
TODO:
#define pDivisibleBy(a, b)
returns TRUE, if leading monom of a divides leading monom of b i.e., if there exists a expvector c > ...
#define pCopy(p)
return a copy of the poly
#define pLmDivisibleByNoComp(a, b)
like pLmDivisibleBy, does not check components
ideal idrMoveR(ideal &id, ring src_r, ring dest_r)
ideal idrCopyR(ideal id, ring src_r, ring dest_r)
ideal idrMoveR_NoSort(ideal &id, ring src_r, ring dest_r)
void PrintS(const char *s)
ring rAssure_C_dp(const ring r)
void rDelete(ring r)
unconditionally deletes fields in r
ring rAssure_dp_C(const ring r)
ideal idInit(int idsize, int rank)
initialise an ideal / module
ideal id_Head(ideal h, const ring r)
returns the ideals of initial terms
long id_RankFreeModule(ideal s, ring lmRing, ring tailRing)
return the maximal component number found in any polynomial in s
void idShow(const ideal id, const ring lmRing, const ring tailRing, const int debugPrint)
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
void id_Shift(ideal M, int s, const ring r)
static poly normalize(poly next_p, ideal add_generators, syStrategy syzstr, int *g_l, int *p_l, int crit_comp)
static ideal syAppendSyz(ideal new_generators, syStrategy syzstr, int index, int crit_comp, resolvente totake)
static void syCreateRegularExtension(syStrategy syzstr, ideal old_ideal, ideal old_repr, int old_tl, poly next_generator, resolvente totake)
void syReorder_Kosz(syStrategy syzstr)
static BOOLEAN syRedSyz(kBucket_pt bucket, ideal red, int crit_comp, int *g_l)
static ideal normalizeOldPart(ideal new_generators, ideal new_repr, syStrategy syzstr, int index, int)
static void redOnePairHIndex(SSet resPairs, int itso, int crit_comp, syStrategy syzstr, int, ideal add_generators, ideal add_repr, ideal new_generators, ideal new_repr, int *next_place_add, int **g_l, poly deg_soc)
syStrategy syKosz(ideal arg, int *length)
static void syTestPairs(SSet resPairs, int length, ideal old_generators)
static void redOnePair(SSet resPairs, int itso, int l, ideal syzygies, int crit_comp, syStrategy syzstr, int index, ideal new_generators, ideal new_repr, int *ogm_l, int *orp_l)
static BOOLEAN reducePairsHIndex(SSet resPairs, int l_pairs, syStrategy syzstr, int index, ideal add_generators, ideal add_repr, ideal new_generators, ideal new_repr, int crit_comp, int *red_deg, int *next_place_add, int **g_l, resolvente totake)
static BOOLEAN redPairs(SSet resPairs, int l_pairs, ideal syzygies, ideal new_generators, ideal new_repr, int crit_comp, syStrategy syzstr, int index)
static void updatePairs(SSet *resPairs, int *l_pairs, syStrategy syzstr, int index, ideal new_generators, ideal new_repr, int crit_comp)
static void updatePairsHIndex(SSet *resPairs, int *l_pairs, syStrategy, int index, ideal add_generators, ideal, ideal, ideal, int, int *first_new)
static void procedeNextGenerators(ideal temp_generators, ideal, ideal new_generators, ideal new_repr, ideal add_generators, ideal add_repr, syStrategy syzstr, int index, int crit_comp, resolvente totake)
void sySPRedSyz_Kosz(syStrategy syzstr, poly redWith, poly syz, poly q=NULL, int l_syz=-1)
static ideal kosz_std(ideal new_generators, ideal new_repr, syStrategy syzstr, int index, int next_comp)
static poly syRedTailSyz(poly tored, ideal red, ideal sec_red, int crit_comp, syStrategy syzstr, int *gen_length, int *secgen_length, int *tored_length)
static BOOLEAN syIsRegular(ideal old_ideal, ideal new_ideal, int deg)
static ideal kosz_ext(ideal new_generators, ideal new_repr, syStrategy syzstr, int index, int next_comp, resolvente totake)
intvec * syBetti(resolvente res, int length, int *regularity, intvec *weights, BOOLEAN tomin, int *row_shift)
resolvente sySchreyerResolvente(ideal arg, int maxlength, int *length, BOOLEAN isMonomial=FALSE, BOOLEAN notReplace=FALSE)
void syCompactifyPairSet(SSet sPairs, int sPlength, int first)
void syEnterPair(syStrategy syzstr, SObject *so, int *sPlength, int index)
void syInitializePair(SObject *so)
void syDeletePair(SObject *so)