22 ideal J =
id_Copy(I,r);
bool b;
int k = 0;
28 ideal JquotM =
idQuot(Jstd,
M,
true,
true);
29 ideal JquotMredJ =
kNF(Jstd,
currRing->qideal,JquotM);
68 rGraded->block0 = (
int*)
omAlloc0(3*
sizeof(
int));
69 rGraded->block1 = (
int*)
omAlloc0(3*
sizeof(
int));
70 rGraded->wvhdl = (
int**)
omAlloc0(3*
sizeof(
int**));
72 rGraded->block0[0] = 1;
73 rGraded->block1[0] = n;
84 for (
int i=0;
i<
k;
i++)
92 for (
int i=0;
i<
k;
i++)
97 poly monomial =
p_One(r);
111 int* cycleAllVariables = (
int*)
omAlloc0((n+1)*
sizeof(int));
112 for (
int i=1;
i<n;
i++)
113 cycleAllVariables[
i]=
i+1;
114 cycleAllVariables[n]=1;
116 int* maxPowers = (
int*)
omAlloc0((n+1)*
sizeof(int));
118 for(
int currentSaturationVariable=n-1; currentSaturationVariable>0; currentSaturationVariable--)
122 for (
int i=0;
i<
k;
i++)
133 if (d>maxPowers[currentSaturationVariable+1])
134 maxPowers[currentSaturationVariable+1]=d;
140 gfan::Integer cache =
w[n-1];
141 for (
int i=n-1;
i>0;
i--)
147 rGradedNew->block0 = (
int*)
omAlloc0(3*
sizeof(
int));
148 rGradedNew->block1 = (
int*)
omAlloc0(3*
sizeof(
int));
149 rGradedNew->wvhdl = (
int**)
omAlloc0(3*
sizeof(
int**));
151 rGradedNew->block0[0] = 1;
152 rGradedNew->block1[0] = n;
159 identity =
n_SetMap(rGraded->cf,rGradedNew->cf);
161 for (
int i=0;
i<
k;
i++)
162 Jold->m[
i] =
p_PermPoly(Jnew->m[
i],cycleAllVariables,rGraded,rGradedNew,identity,
NULL,0);
166 rGraded = rGradedNew;
177 for (
int i=0;
i<
k;
i++)
182 poly monomial =
p_One(r);
185 int jDeshifted = (
j-currentSaturationVariable)%n;
186 if (jDeshifted<=0) jDeshifted = jDeshifted+n;
193 omFree(cycleAllVariables);
207 omFree(cycleAllVariables);
220 I = (ideal) u->
CopyD();
226 I = (ideal) u->
Data();
242 ideal I = (ideal) u->
Data();
264 WerrorS(
"searchForMonomialViaStepwiseSaturation: unexpected parameters");
bigintmat * iv2bim(intvec *b, const coeffs C)
int * ZVectorToIntStar(const gfan::ZVector &v, bool &overflow)
gfan::ZVector * bigintmatToZVector(const bigintmat &bim)
Class used for (list of) interpreter objects.
static FORCE_INLINE BOOLEAN n_IsUnit(number n, const coeffs r)
TRUE iff n has a multiplicative inverse in the given coeff field/ring r.
static FORCE_INLINE nMapFunc n_SetMap(const coeffs src, const coeffs dst)
set the mapping function pointers for translating numbers from src to dst
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
number(* nMapFunc)(number a, const coeffs src, const coeffs dst)
maps "a", which lives in src, into dst
poly searchForMonomialViaStepwiseSaturation(const ideal I, const ring r, const gfan::ZVector w0)
BOOLEAN checkForMonomial(leftv res, leftv args)
poly checkForMonomialViaSuddenSaturation(const ideal I, const ring r)
const Variable & v
< [in] a sqrfree bivariate poly
void WerrorS(const char *s)
ideal idQuot(ideal h1, ideal h2, BOOLEAN h1IsStb, BOOLEAN resultIsIdeal)
ideal id_Copy(ideal h1, const ring r)
copy an ideal
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
ideal kStd(ideal F, ideal Q, tHomog h, intvec **w, intvec *hilb, int syzComp, int newIdeal, intvec *vw, s_poly_proc_t sp)
poly p_PermPoly(poly p, const int *perm, const ring oldRing, const ring dst, nMapFunc nMap, const int *par_perm, int OldPar, BOOLEAN use_mult)
static long p_SubExp(poly p, int v, long ee, ring r)
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent @Note: VarOffset encodes the position in p->exp
static void p_Setm(poly p, const ring r)
static number p_SetCoeff(poly p, number n, ring r)
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent @Note: the integer VarOffset encodes:
static void p_Delete(poly *p, const ring r)
static poly p_Init(const ring r, omBin bin)
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)
BOOLEAN rComplete(ring r, int force)
this needs to be called whenever a new ring is created: new fields in ring are created (like VarOffse...
ring rCopy0(const ring r, BOOLEAN copy_qideal, BOOLEAN copy_ordering)
void rDelete(ring r)
unconditionally deletes fields in r
static short rVar(const ring r)
#define rVar(r) (r->N)
ideal idInit(int idsize, int rank)
initialise an ideal / module
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
BOOLEAN id_IsConstant(ideal id, const ring r)
test if the ideal has only constant polynomials NOTE: zero ideal/module is also constant
ideal gfanlib_monomialabortStd_wrapper(ideal I, ring r, tHomog h=testHomog)