1#define PLURAL_INTERNAL_DECLARATIONS
30 for(
int i = 0;
i <
s;
i++)
32 const poly
p = J->m[
i];
42 for (
int j = 1;
j <= rN;
j++)
68 Print(
"Reducing q[j = %d]: ",
j);
98 PrintS(
"NF(J/currRing->qideal)=> q: ");
203 PrintS(
"ideals of diff. size!!!");
251 int flag, flagcnt=0, syzcnt=0;
257 ideal trickyQuotient;
265 poly *var = (poly *)
omAlloc0((
N+1)*
sizeof(poly));
272 ideal h2, s_h2, s_h3;
275 for (
i=1;
i<=
N;
i++ )
283 for (
i=1;
i<=
N;
i++ )
287 for (
j=0;
j< idI;
j++ )
314 if (orig_ring != syz_ring)
330 Print(
".proceeding with the variable %d\n",
i);
339 PrintS(
"...computing Syz");
343 if (orig_ring != syz_ring)
348 if (s_h3->m[
j] !=
NULL)
357 s_h3->rank -= syzcomp;
375 PrintS(
"the input is a two--sided ideal");
380 Print(
"..computing Intersect of %d modules\n",syzcnt);
static int si_max(const int a, const int b)
const CanonicalForm CFMap CFMap & N
const CanonicalForm int s
ideal idMultSect(resolvente arg, int length, GbVariant alg)
#define idDelete(H)
delete an ideal
#define idSimpleAdd(A, B)
ideal kStd2(ideal F, ideal Q, tHomog h, intvec **w, bigintmat *hilb, int syzComp, int newIdeal, intvec *vw, s_poly_proc_t sp)
generic interface to GB/SB computations, large hilbert vectors
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
static poly nc_ReduceSpoly(const poly p1, poly p2, const ring r)
#define MATELEM(mat, i, j)
1-based access to matrix
ideal Approx_Step(ideal L)
Ann: ???
static ideal idPrepareStd(ideal T, ideal s, int k)
ideal twostd(ideal I)
Compute two-sided GB:
#define SI_RESTORE_OPT1(A)
void p_Shift(poly *p, int i, const ring r)
shifts components of the vector p by i
void p_Write(poly p, ring lmRing, ring tailRing)
static poly pp_Mult_mm(poly p, poly m, const 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 long p_MinComp(poly p, ring lmRing, ring tailRing)
static void p_Setm(poly p, const ring r)
static BOOLEAN p_IsConstant(const poly p, const ring r)
static BOOLEAN p_LmDivisibleBy(poly a, poly b, const ring r)
static void p_Delete(poly *p, const ring 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 pSetmComp(p)
TODO:
#define pCopy(p)
return a copy of the poly
ideal idrMoveR_NoSort(ideal &id, ring src_r, ring dest_r)
ideal idrCopyR_NoSort(ideal id, ring src_r, ring dest_r)
void PrintS(const char *s)
ring rAssure_SyzComp(const ring r, BOOLEAN complete)
void rDelete(ring r)
unconditionally deletes fields in r
void rSetSyzComp(int k, const ring r)
ideal idInit(int idsize, int rank)
initialise an ideal / module
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
matrix id_Module2Matrix(ideal mod, const ring R)
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
ideal id_SimpleMove(ideal h1, ideal h2, const ring R)
concat the lists h1 and h2 without zeros, destroys h1,h2
static int idElem(const ideal F)
number of non-zero polys in F