1 #define PLURAL_INTERNAL_DECLARATIONS 34 for(
int i = 0;
i <
s;
i++)
46 for (
int j = 1;
j <= rN;
j++)
59 Print(
"Reducing p: ");
72 Print(
"Reducing q[j = %d]: ",
j);
89 Print(
"reductum q/p: ");
102 Print(
"NF(J/currRing->qideal)=> q: ");
210 Print(
"ideals of diff. size!!!");
258 int flag, flagcnt=0, syzcnt=0;
264 ideal trickyQuotient;
279 ideal h2, s_h2, s_h3;
282 for (i=1; i<=
N; i++ )
290 for (i=1; i<=
N; i++ )
294 for (j=0; j< idI; j++ )
321 if (orig_ring != syz_ring)
337 Print(
".proceeding with the variable %d\n",i);
346 Print(
"...computing Syz");
350 if (orig_ring != syz_ring)
353 for (j=0; j<
IDELEMS(s_h3); j++)
355 if (s_h3->m[j] !=
NULL)
357 if (
p_MinComp(s_h3->m[j],syz_ring) > syzcomp)
364 s_h3->rank -= syzcomp;
382 Print(
"the input is a two--sided ideal");
387 Print(
"..computing Intersect of %d modules\n",syzcnt);
395 for (i=1; i<=
MATCOLS(MI); i++)
398 for (j=0; j<
idElem(I); j++)
416 Print(
"No syzygies");
#define pSetmComp(p)
TODO:
const CanonicalForm int s
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
#define idDelete(H)
delete an ideal
Compatiblity layer for legacy polynomial operations (over currRing)
#define idSimpleAdd(A, B)
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
static poly pp_Mult_mm(poly p, poly m, const ring r)
ideal kStd(ideal F, ideal Q, tHomog h, intvec **w, intvec *hilb, int syzComp, int newIdeal, intvec *vw, s_poly_proc_t sp)
ideal idMultSect(resolvente arg, int length)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
long id_RankFreeModule(ideal s, ring lmRing, ring tailRing)
return the maximal component number found in any polynomial in s
const CanonicalForm CFMap CFMap & N
static BOOLEAN p_IsConstant(const poly p, const ring r)
ring rAssure_SyzComp(const ring r, BOOLEAN complete)
static ideal idPrepareStd(ideal T, ideal s, int k)
static poly nc_ReduceSpoly(const poly p1, poly p2, const ring r)
static int si_max(const int a, const int b)
static long p_MinComp(poly p, ring lmRing, ring tailRing)
matrix id_Module2Matrix(ideal mod, const ring R)
static BOOLEAN p_LmDivisibleBy(poly a, poly b, const ring r)
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
void rSetSyzComp(int k, const ring r)
ideal Approx_Step(ideal L)
Ann: ???
void rChangeCurrRing(ring r)
void p_Shift(poly *p, int i, const ring r)
shifts components of the vector p by i
static void p_Delete(poly *p, const ring r)
ideal idInit(int idsize, int rank)
initialise an ideal / module
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent : VarOffset encodes the position in p->exp
void rDelete(ring r)
unconditionally deletes fields in r
static void p_Setm(poly p, const ring r)
int idElem(const ideal F)
count non-zero elements
void p_Write(poly p, ring lmRing, ring tailRing)
#define SI_RESTORE_OPT1(A)
ideal idrCopyR_NoSort(ideal id, ring src_r, ring dest_r)
ideal idrMoveR_NoSort(ideal &id, ring src_r, ring dest_r)
#define pCopy(p)
return a copy of the poly
#define MATELEM(mat, i, j)
ideal twostd(ideal I)
Compute two-sided GB: