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)
int SI_MOD_INIT() customstd(SModulFunctions *p)
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
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)