46 ideal I=(ideal)u->
Data();
59 J = (ideal)
v->Data();
64 WerrorS(
"satstd: unexpected parameters");
74 res->data = (
char*) idealCache;
88 WerrorS(
"satstd: unexpected parameters");
96 if (strat->
P.t_p==
NULL)
101 while ((strat->
Ll >= 0))
111 while ((strat->
Ll >= 0))
123 if (strat->
P.t_p==
NULL)
133 fwrite(
s,strlen(
s),1,
f);
145 if (strat->
P.t_p==
NULL)
158 char *fn=(
char*)
malloc(len);
161 FILE *
f=fopen(fn,
"w");
162 fwrite(
s,strlen(
s),1,
f);
178 ideal I=(ideal)args->
Data();
186 WerrorS(
"std_print_spoly: unexpected parameters");
212static ideal idPrepare_print (ideal h1, ideal h11,
tHomog hom,
int syzcomp,
intvec **
w)
236 Warn(
"syzcomp too low, should be %d instead of %d",
k,syzcomp);
240 h2->rank = syzcomp+
i;
269 PrintS(
" --------------before std------------------------\n");
276 if (
w!=
NULL) h3=idGroebner_print(h2,syzcomp,*
w,hom);
277 else h3=idGroebner_print(h2,syzcomp,
NULL,hom);
288 int ii, idElemens_h1;
294 for(ii=0;ii<idElemens_h1 ;ii++)
pTest(h1->m[ii]);
309 if (orig_ring != syz_ring)
325 ideal s_h3=idPrepare_print(s_h1,
NULL,
h,
k,
w);
329 if (orig_ring != syz_ring)
334 if (s_h3->m[
j] !=
NULL)
362 if (s_h3->m[
j] !=
NULL)
366 e->m[
j] = s_h3->m[
j];
367 isMonomial=isMonomial && (
pNext(s_h3->m[
j])==
NULL);
399 ideal v_id=(ideal)args->
Data();
408 int add_row_shift=
w->min_in();
425 ideal S=idSyzygies_print(v_id,hom,&
w);
426 res->data = (
char *)S;
434 for(
int i=0;
i<vl;
i++)
436 if (v_id->m[
i]!=
NULL)
443 for(
int i=0;
i<vl;
i++)
445 if (v_id->m[
i]!=
NULL)
459 WerrorS(
"syz_print_spoly: unexpected parameters");
470 ideal I=(ideal)args->
Data();
478 WerrorS(
"monomialabortstd: unexpected parameters");
665 p->iiAddCproc(
"customstd.lib",
"satstdInternal",
FALSE,
satstd);
void atSet(idhdl root, char *name, void *data, int typ)
void * atGet(idhdl root, const char *name, int t, void *defaultReturnValue)
static int si_max(const int a, const int b)
void CleanUp(ring r=currRing)
int SI_MOD_INIT customstd(SModulFunctions *p)
static BOOLEAN satstd(leftv res, leftv args)
static BOOLEAN abort_if_monomial_sp(kStrategy strat)
STATIC_VAR char * si_filename
static BOOLEAN std_print_spoly(leftv res, leftv args)
static BOOLEAN monomialabortstd(leftv res, leftv args)
static BOOLEAN print_spoly(kStrategy strat)
const CanonicalForm int s
const Variable & v
< [in] a sqrfree bivariate poly
void WerrorS(const char *s)
BOOLEAN idTestHomModule(ideal m, ideal Q, intvec *w)
void ipPrint_MA0(matrix m, const char *name)
ideal id_Satstd(const ideal I, ideal J, const ring r)
#define idDelete(H)
delete an ideal
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
static BOOLEAN idHomModule(ideal m, ideal Q, intvec **w)
static BOOLEAN idHomIdeal(ideal id, ideal Q=NULL)
ideal idFreeModule(int i)
intvec * ivCopy(const intvec *o)
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
void deleteInL(LSet set, int *length, int j, kStrategy strat)
#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_SetModDeg(intvec *w, ring r)
long p_Deg(poly a, const ring r)
char * p_String(poly p, ring lmRing, ring tailRing)
static long p_MinComp(poly p, ring lmRing, ring tailRing)
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 ...
#define pGetComp(p)
Component.
#define pSetmComp(p)
TODO:
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)
static BOOLEAN rIsPluralRing(const ring r)
we must always have this test!
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
ideal id_MaxIdeal(const ring r)
initialise the maximal ideal (at 0)
void id_DelMultiples(ideal id, const ring r)
ideal id = (id[i]), c any unit if id[i] = c*id[j] then id[j] is deleted for j > i
ideal id_SimpleAdd(ideal h1, ideal h2, const ring R)
concat the lists h1 and h2 without zeros
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
void id_Shift(ideal M, int s, const ring r)