48 if (strat->
P.t_p==
NULL)
57 bool nonTrivialSaturationToBeDone=
true;
60 nonTrivialSaturationToBeDone=
false;
62 for (
int i=satstdSaturatingVariables.size()-1;
i>=0;
i--)
64 int li = satstdSaturatingVariables[
i];
65 mm[li]=
si_min(mm[li],m0[li]);
66 if (mm[li]>0) nonTrivialSaturationToBeDone=
true;
69 if (nonTrivialSaturationToBeDone==
false)
break;
71 if (nonTrivialSaturationToBeDone==
true)
75 memset(&strat->
P,0,
sizeof(strat->
P));
80 for (
int i=satstdSaturatingVariables.size()-1;
i>=0;
i--)
82 int li = satstdSaturatingVariables[
i];
102 bool nonTrivialSaturationToBeDone=
true;
105 nonTrivialSaturationToBeDone=
false;
107 for(
int i=satstdSaturatingVariables.size()-1;
i>=0;
i--)
109 int li = satstdSaturatingVariables[
i];
110 mm[li]=
si_min(mm[li],m0[li]);
111 if (mm[li]>0) nonTrivialSaturationToBeDone =
true;
114 if (!nonTrivialSaturationToBeDone)
break;
116 if (nonTrivialSaturationToBeDone)
119 memset(&strat->
P,0,
sizeof(strat->
P));
124 for(
int i=satstdSaturatingVariables.size()-1;
i>=0;
i--)
126 int li = satstdSaturatingVariables[
i];
151 satstdSaturatingVariables = std::vector<int>(n);
152 for (
int i=n-1;
i>=0;
i--)
153 satstdSaturatingVariables[
i] =
i+1;
159 ideal J = (ideal) v->
Data();
162 satstdSaturatingVariables = std::vector<int>(
k);
163 for (
int i=0;
i<
k;
i++)
168 satstdSaturatingVariables[
i]=li;
171 WerrorS(
"satstd: second argument only ideals generated by variables supported for now");
178 WerrorS(
"satstd: unexpected parameters");
183 ideal I = (ideal) u->
Data();
187 satstdSaturatingVariables = std::vector<int>();
203 WerrorS(
"satstd: unexpected parameters");
Class used for (list of) interpreter objects.
static int si_min(const int a, const int b)
static void p_GetExpV(poly p, int *ev, const ring r)
static short rVar(const ring r)
#define rVar(r) (r->N)
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
ideal kStd(ideal F, ideal Q, tHomog h, intvec **w, intvec *hilb, int syzComp, int newIdeal, intvec *vw, s_poly_proc_t sp)
void WerrorS(const char *s)
static poly p_Copy(poly p, const ring r)
returns a copy of p
static long p_SubExp(poly p, int v, long ee, ring r)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
const Variable & v
< [in] a sqrfree bivariate poly
int SI_MOD_INIT() std_demo(SModulFunctions *p)
static void p_Setm(poly p, const ring r)
std::vector< int > satstdSaturatingVariables
static BOOLEAN sat_vars_sp(kStrategy strat)
static BOOLEAN satstd(leftv res, leftv args)
int p_Var(poly m, const ring r)