10#if !defined(__CYGWIN__) || defined(STATIC_VERSION)
51 for(
unsigned i=0;
i<
vec.size();
i++)
101 for(
unsigned i=0;
i<
pv.size();
i++)
116static void lpsprint(std::vector<std::vector<poly> >
pvs)
118 for(
unsigned i=0;
i<
pvs.size();
i++)
139 for(
unsigned i=0;
i<
vec.size();
i++)
153 std::vector<int>
inte;
154 for(
unsigned i=0;
i<
p.size();
i++)
178 if(
vec1.size()==0 &&
vec2.size()==0)
188static bool vInvsl(std::vector<int>
vec, std::vector<std::vector<int> >
vecs)
204 for(
unsigned i=0;
i<
vec2.size();
i++)
214 std::vector<int>
vec;
215 for(
unsigned i=0;
i<
vec1.size();
i++)
225static std::vector<std::vector<int> >
vsMinusv(std::vector<std::vector<int> >
vecs, std::vector<int>
vec)
227 std::vector<std::vector<int> >
rem;
238static std::vector<std::vector<int> >
vsUnion(std::vector<std::vector<int> >
vs1, std::vector<std::vector<int> >
vs2)
240 std::vector<std::vector<int> >
vs=
vs1;
241 for(
int i=0;
i<
vs2.size();
i++)
251static std::vector<std::vector<int> >
vsIntersection(std::vector<std::vector<int> >
vs1, std::vector<std::vector<int> >
vs2)
253 std::vector<std::vector<int> >
vs;
254 for(
int i=0;
i<
vs2.size();
i++)
285 std::vector<std::vector<int> >
vecs;
286 std::vector<int>
vec;
323 std::vector<std::vector<int> >
vecs;
324 std::vector<int>
vec;
340 int n=
vbase.size(); poly
p,q;
359 for(
int i=0;
i<lv;
i++)
419 std::vector<int>
vbase;
437 std::vector<int>
vec;
438 std::vector<std::vector<int> >
vecs;
449static std::vector<std::vector<int> >
vecqring(std::vector<std::vector<int> >
vec1, std::vector<std::vector<int> >
vec2)
481 for(
int i=0;
i<lv;
i++)
496 std::vector<std::vector<int> >
vecs;
497 for(
int i=0;
i<
vec.size();
i++)
1001 for(
unsigned i=0;
i<
h2v.size();
i++)
1018static std::vector<int>
eli1(std::vector<int>
eq1,std::vector<int>
eq2)
1021 std::vector<int>
eq;
1063 std::vector<int>
yaya;
1074static std::vector<std::vector<int> >
soleli1( std::vector<std::vector<int> >
eqs)
1077 std::vector<int>
yaya;
1081 re.push_back(
eqs[0]);
1087 for(
i=1;
i<
re.size();
i++)
1107static std::vector<int>
freevars(
int n, std::vector<int>
bset, std::vector<std::vector<int> >
gset)
1111 for(
int i=0;
i<
bl;
i++)
1115 for(
int i=0;
i<
ql;
i++)
1119 for(
int i=1;
i<=n;
i++)
1133 for(
int i=0;
i<
fset.size();
i++)
1146static std::vector<std::vector<int> >
vAbsorb( std::vector<int>
bset,std::vector<std::vector<int> >
gset)
1150 for(
int i=0;
i<
bl;
i++)
1153 for(
int j=0;
j<
gl;
j++)
1192 std::vector<int> base;
1207 std::vector<int>
vec;
1208 for(
int i=0;
i<n;
i++)
1219 std::vector<int>
vec;
1220 for(
int i=0;
i<n;
i++)
1231 std::vector<std::vector<int> >
goodset;
1247 std::vector<std::vector<int> >
bases;
1249 if (
fvars.size()==0)
1256 for(
unsigned i=0;
i<
fvars.size();
i++)
1271static std::vector<std::vector<int> >
eli2(
int num, std::vector<int>
bset,std::vector<std::vector<int> >
gset)
1314 for(
int i=0;
i<
X.size();
i++)
1357 std::vector<int>
as;
1366 for(
int i=2;
i<=deg;
i++)
1425 std::vector<int>
vert;
1426 std::vector<std::vector<int> >
vvs;
1429 for(
unsigned j=0;
j<
vecs.size();
j++)
1453 for(
unsigned i=0;
i<
res.size();
i++)
1587 std::vector<int>
eq;
1611 for(
int i=0;
i<3;
i++)
1628 unsigned lv=
vecs.size();
1629 for(
unsigned i=0;
i<lv;
i++)
1663static std::vector<int>
subspace1(std::vector<std::vector<int> >
mv, std::vector<int>
bv)
1666 std::vector<int>
base;
1681static std::vector<poly>
pMakei(std::vector<std::vector<int> >
mv,std::vector<int>
vbase)
1684 std::vector<poly>
h1;
1686 for(
int i=0;
i<n;
i++)
1695static std::vector<std::vector<poly> >
idMakei(std::vector<std::vector<int> >
mv,std::vector<std::vector<int> >
vecs)
1697 int i,lv=
vecs.size();
1698 std::vector<std::vector<poly> >
re;
1699 std::vector<poly>
h;
1760 std::vector<std::vector<int> >
suu;
1771 PrintS(
"No element considered!\n");
1793static bool condition2for2(std::vector<std::vector<int> >
hvs, std::vector<int>
pv, std::vector<int>
qv, std::vector<int>
sv, std::vector<int>
av, std::vector<int>
bv)
1808static bool condition3for2(std::vector<std::vector<int> >
hvs, std::vector<int>
pv, std::vector<int>
qv, std::vector<int>
av, std::vector<int>
bv)
1810 std::vector<int>
v1,
v2,
v3;
1837 WerrorS(
"presolve.lib are not loaded!");
1859 std::vector<int>
fvar;
1877 std::vector<std::vector<int> >
vecs;
1878 std::vector<int>
vec;
1897 std::vector<int>
vec;
1898 std::vector<std::vector<int> >
vecs;
1960static std::vector<int>
findalpha(std::vector<std::vector<int> >
mv, std::vector<int>
bv)
1962 std::vector<int>
alset;
1963 for(
unsigned i=0;
i<
mv.size();
i++)
1978 int i,
j, t, n=
ntvs.size();
2004static std::vector<std::vector<int> >
subspacet(std::vector<std::vector<int> >
mv, std::vector<int>
bv,std::vector<std::vector<int> >
ntvs)
2007 std::vector<std::vector<int> >
subases;
2008 for(
unsigned i=0;
i<
alset.size();
i++)
2019static std::vector<std::vector<int> >
mabtv(std::vector<std::vector<int> >
hvs, std::vector<std::vector<int> >
Mv, std::vector<int>
av, std::vector<int>
bv)
2021 std::vector<int>
v1,var;
2022 std::vector<std::vector<int> >
vars;
2023 for(
unsigned i=0;
i<
Mv.size();
i++)
2025 for(
unsigned j=
i+1;
j<
Mv.size();
j++)
2033 vars.push_back(var);
2045 int t0,t1,t2,
i,
j,t,
m;
2051 PrintS(
"The homomorphism should map onto:\n");
2082 for(t1=
t0+1;t1<
vars.size();t1++)
2084 for(t2=t1+1;t2<
vars.size();t2++)
2107 PrintS(
"this is the solution for ideal :\n");
2111 PrintS(
"this is the solution for subspace:\n");
2115 PrintS(
"This is the solution of coefficients:\n");
2121 PrintS(
"No element considered!");
2144static std::vector<std::vector<int> >
Nabv(std::vector<std::vector<int> >
hvs, std::vector<int>
av, std::vector<int>
bv)
2146 std::vector<std::vector<int> >
vecs;
2163 std::vector<int>
v1;
2173static std::vector<std::vector<int> >
nabtv(std::vector<std::vector<int> >
hvs, std::vector<std::vector<int> >
Nv, std::vector<int>
av, std::vector<int>
bv)
2175 std::vector<int>
v1,var;
2176 std::vector<std::vector<int> >
vars;
2177 for(
unsigned i=0;
i<
Nv.size();
i++)
2179 for(
unsigned j=
i+1;
j<
Nv.size();
j++)
2186 vars.push_back(var);
2195static bool tNab(std::vector<std::vector<int> >
hvs, std::vector<int>
pv, std::vector<std::vector<int> >
bvs)
2197 std::vector<int>
sv;
2198 if(
bvs.size()<=1)
return false;
2199 for(
unsigned i=0;
i<
bvs.size();
i++)
2210static std::vector<int>
tnab(std::vector<std::vector<int> >
hvs,std::vector<std::vector<int> >
nvs,std::vector<std::vector<int> >
bvs)
2212 std::vector<int>
pv,
vec;
2213 for(
unsigned j=0;
j<
nvs.size();
j++)
2225static std::vector<int>
phimage(std::vector<int>
pv, std::vector<int>
av, std::vector<int>
bv)
2234static std::vector<std::vector<int> >
value1(std::vector<std::vector<int> >
mvs, std::vector<std::vector<int> >
nvs, std::vector<std::vector<int> >
vecs,std::vector<int>
av, std::vector<int>
bv)
2237 std::vector<int>
pv, base;
2238 std::vector<std::vector<int> >
bases;
2239 for(
unsigned t=0;t<
vecs.size();t++)
2241 for(
unsigned i=0;
i<
mvs.size();
i++)
2244 for(
j=0;
j<
nvs.size();
j++)
2248 base.push_back(
vecs[t][
j]);
2260 WerrorS(
"Errors in Equations solving (Values Finding)!");
2265 bases.push_back(base);
2277 unsigned a=
vecs.size();
2284 int b=
vecs[0].size();
2286 for(
unsigned i=1;
i<=a;
i++)
2288 for(
unsigned j=1;
j<=
b;
j++)
2318 std::vector<std::vector<int> >
mv=
Mabv(
h,a,
b);
2333 std::vector<std::vector<int> >
solsm;
2337 for(
j=0;
j<
vec.size();
j++)
2361 unsigned n=
nv.size();
2366 for(
unsigned i=0;
i<
tnv.size();
i++)
2369 bad.push_back(
co+1);
2371 for(
unsigned i=0;
i<n;
i++)
2373 for(
unsigned j=
i+1;
j<n;
j++)
2394 std::vector<std::vector<int> >
suu;
2425 std::vector<std::vector<int> >
solve;
2464static std::vector<int>
findalphan(std::vector<std::vector<int> >
N, std::vector<int>
tN)
2467 for(
i=0;
i<
N.size();
i++)
2480static std::vector<std::vector<int> >
subspacetn(std::vector<std::vector<int> >
N, std::vector<int>
tN, std::vector<std::vector<int> >
ntvs)
2484 std::vector<std::vector<int> >
subases;
2499static std::vector<std::vector<int> >
value2(std::vector<std::vector<int> >
mvs, std::vector<std::vector<int> >
nvs, std::vector<std::vector<int> >
mts, std::vector<std::vector<int> >
nts, std::vector<std::vector<int> >
vecs,std::vector<int>
av, std::vector<int>
bv)
2502 std::vector<int>
pv,
qv, base;
2503 std::vector<std::vector<int> >
bases;
2510 for(
unsigned t=0;t<
vecs.size();t++)
2512 for(
unsigned i=0;
i<
mts.size();
i++)
2522 for(
j=0;
j<
nts.size();
j++)
2528 base.push_back(
vecs[t][
j]);
break;
2532 base.push_back(-
vecs[t][
j]);
break;
2535 if(
j==
nts.size()) {base.push_back(0);}
2540 WerrorS(
"Errors in Values Finding(value2)!");
2545 bases.push_back(base);
2559 for(
unsigned i=0;
i<
pvs.size();
i++)
2601 for(
unsigned t1=
t0+1;t1<
ntvs.size();t1++)
2603 for(
unsigned t2=t1+1;t2<
ntvs.size();t2++)
2654 std::vector<int>
bv,
av;
2655 std::vector<std::vector<int> >
solve;
2667 PrintS(
"This is a set according to current b:\n");
2685 Print(
"There are %d graded pieces in total.\n",
gp);
2691static std::vector<int>
phimagel(std::vector<int>
fv, std::vector<int>
av, std::vector<int>
bv)
2693 std::vector<int>
nv;
2701static std::vector<std::vector<int> >
value1l(std::vector<std::vector<int> >
mvs, std::vector<std::vector<int> >
lks, std::vector<std::vector<int> >
vecs,std::vector<int>
av, std::vector<int>
bv)
2703 std::vector<int>
pv;
2704 std::vector<int> base;
2705 std::vector<std::vector<int> >
bases;
2706 for(
unsigned t=0;t<
vecs.size();t++)
2708 for(
unsigned i=0;
i<
mvs.size();
i++)
2711 for(
unsigned j=0;
j<
lks.size();
j++)
2715 base.push_back(
vecs[t][
j]);
break;
2722 WerrorS(
"Errors in Values Finding(value1l)!");
2726 bases.push_back(base);
2742 PrintS(
"__________________________________________________________\n");
2756 unsigned n=
nv.size();
2762 for(
unsigned i=0;
i<
tnv.size();
i++)
2765 bad.push_back(
co+1);
2767 for(
unsigned i=0;
i<n;
i++)
2769 for(
unsigned j=
i+1;
j<n;
j++)
2791 std::vector<std::vector<int> >
suu;
2833static std::vector<std::vector<int> >
value2l(std::vector<std::vector<int> >
mvs, std::vector<std::vector<int> >
lks, std::vector<std::vector<int> >
mts, std::vector<std::vector<int> >
lkts, std::vector<std::vector<int> >
vecs,std::vector<int>
av, std::vector<int>
bv)
2835 std::vector<int>
pv,
qv,base;
2837 std::vector<std::vector<int> >
bases;
2842 for(
unsigned t=0;t<
vecs.size();t++)
2844 for(
unsigned i=0;
i<
mts.size();
i++)
2854 for(
unsigned j=0;
j<
lkts.size();
j++)
2860 base.push_back(
vecs[t][
j]);
break;
2864 base.push_back(-
vecs[t][
j]);
break;
2875 WerrorS(
"Errors in Values Finding!");
2880 bases.push_back(base);
2915 for(
unsigned t1=
t0+1;t1<
ntvs.size();t1++)
2917 for(
unsigned t2=t1+1;t2<
ntvs.size();t2++)
2969 if(
solve.size() > 0)
3014 std::vector<int>
pv;
3029 std::vector<std::vector<int> >
fvs0,
fvs;
3034 for(
unsigned i=0;
i<
fvs0.size();
i++)
3086 for(
unsigned i=0;
i<
fv1.size();
i++)
3125 for(
unsigned i=0;
i<
fvs2.size();
i++)
3153 std::vector<int>
ev1=
commonedge(
p, q),
ev2=
commonedge(
p,
g),
ev3=
commonedge(q,
g),
ind,
vec,
fv1=
support1(
p),
fv2=
support1(q),
fv3=
support1(
g);
3158 for(
unsigned i=0;
i<
evec.size();
i++)
3177 for(
unsigned i=0;
i<
evec.size();
i++)
3184 for(
unsigned i=0;
i<
fvs3.size();
i++)
3201 for(
unsigned i=0;
i<
evec.size();
i++)
3226 for(
unsigned i=0;
i<
vecs.size();
i++)
3267static std::vector<std::vector<int> >
vsMinusvs(std::vector<std::vector<int> >
vs1, std::vector<std::vector<int> >
vs2)
3269 std::vector<std::vector<int> >
vs=
vs1;
3270 for(
unsigned i=0;
i<
vs2.size();
i++)
3277static std::vector<std::vector<int> >
vs_subsets(std::vector<std::vector<int> >
vs)
3279 std::vector<std::vector<int> >
sset,
bv;
3280 for(
unsigned i=0;
i<
vs.size();
i++)
3337 std::vector<int>
ev;
3373 for(
unsigned i=0;
i<
ss.size();
i++)
3390 for(
unsigned i=0;
i<
ss.size();
i++)
3422 WerrorS(
"Cannot find the links smartly!");
3432 for(
unsigned i=0;
i<
bs.size();
i++)
3459static int ifIso(poly
p, poly q, poly
f, poly
g, poly a, poly
b)
3462 std::vector<int>
v1=
phimagel(
vp,
va,
vb),
v2=
phimagel(
vq,
va,
vb),
v3=
phimagel(
vf,
va,
vb),
v4=
phimagel(
vg,
va,
vb);
3487static std::vector<int>
v_minus(std::vector<int>
v1, std::vector<int>
v2)
3489 std::vector<int>
vec;
3490 for(
unsigned i=0;
i<
v1.size();
i++)
3500 std::vector<int>
av,
bv;
3518 for(
unsigned i=0;
i<
X.size();
i++)
3532 std::vector<std::vector<int> >
vecs;
3556 for(
unsigned i=0;
i<
lk.size();
i++)
3560 for(
unsigned j=0;
j<
bys.size();
j++)
3575 std::vector<std::vector<int> >
bset;
3576 for(
unsigned i=0;
i<
bvs.size();
i++)
3578 for(
unsigned j=0;
j!=
i;
j++)
3689 poly
p= (poly)
h->Data();
3693 poly q= (poly)
h->Data();
3726 poly
p= (poly)
h->Data();
3730 poly q= (poly)
h->Data();
3744 poly
p= (poly)
h->Data();
3748 poly q= (poly)
h->Data();
3805 poly
p= (poly)
h->Data();
3823 poly q= (poly)
h->Data();
3827 int d= (
int)(
long)
h->Data();
3846 poly
p= (poly)
h->Data();
3850 poly q= (poly)
h->Data();
3869 poly
p= (poly)
h->Data();
3873 poly q= (poly)
h->Data();
3877 int d= (
int)(
long)
h->Data();
3897 poly
p= (poly)
h->Data();
3901 poly q= (poly)
h->Data();
3920 poly
p= (poly)
h->Data();
3924 poly q= (poly)
h->Data();
3943 poly
p= (poly)
h->Data();
3947 poly q= (poly)
h->Data();
3962 poly
p= (poly)
h->Data();
3998 poly
p= (poly)
h->Data();
4002 int d= (
int)(
long)
h->Data();
4021 poly
p= (poly)
h->Data();
4025 poly q= (poly)
h->Data();
4029 int d= (
int)(
long)
h->Data();
4049 poly
p= (poly)
h->Data();
4053 poly q= (poly)
h->Data();
4057 poly
g= (poly)
h->Data();
4061 int d= (
int)(
long)
h->Data();
4076 std::vector<int>
bset,
bs;
4077 std::vector<std::vector<int> >
gset;
4080 int n= (
int)(
long)
h->Data();
4094 else if(
bs.size()==0)
4098 WerrorS(
"Errors in T^1 Equations Solving!");
4137 poly
p= (poly)
h->Data();
4155 poly
p= (poly)
h->Data();
4159 poly q= (poly)
h->Data();
4180 poly
p= (poly)
h->Data();
4184 poly q= (poly)
h->Data();
4191 for(
unsigned i=0;
i<
tnv.size();
i++)
4232 poly
p= (poly)
h->Data();
4236 poly q= (poly)
h->Data();
4255 poly
p= (poly)
h->Data();
4259 poly q= (poly)
h->Data();
4266 for(
unsigned i=0;
i<
pvs.size();
i++)
4286 poly a= (poly)
h->Data();
4302 int ord= (
int)(
long)
h->Data();
4319 poly
p= (poly)
h->Data();
4386 poly
p= (poly)
h->Data();
4399 poly
p= (poly)
h->Data();
4416 poly
p= (poly)
h->Data();
4434 poly
p= (poly)
h->Data();
4435 std::vector<std::vector<int> >
st=
star(
p,
h1);
4469 poly
p= (poly)
h->Data();
4491 poly
p= (poly)
h->Data();
4541 poly
p= (poly)
h->Data();
4549 poly a= (poly)
h->Data();
4553 poly
b= (poly)
h->Data();
4569 poly
p= (poly)
h->Data();
4573 poly q= (poly)
h->Data();
4577 poly
f= (poly)
h->Data();
4581 poly
g= (poly)
h->Data();
4585 poly a= (poly)
h->Data();
4589 poly
b= (poly)
h->Data();
4607 poly
p= (poly)
h->Data();
4611 int num= (
int)(
long)
h->Data();
4655 int num= (
int)(
long)
h->Data();
4670 p->iiAddCproc(
"",
"findbset",
FALSE,
fb);
4671 p->iiAddCproc(
"",
"findaset",
FALSE,
fa);
const CanonicalForm CFMap CFMap & N
bool solve(int **extmat, int nrows, int ncols)
Class used for (list of) interpreter objects.
Coefficient rings, fields and other domains suitable for Singular polynomials.
static FORCE_INLINE long n_Int(number &n, const coeffs r)
conversion of n to an int; 0 if not possible in Z/pZ: the representing int lying in (-p/2 ....
static FORCE_INLINE coeffs nCopyCoeff(const coeffs r)
"copy" coeffs, i.e. increment ref
static BOOLEAN fa(leftv res, leftv args)
static std::vector< int > vecbase1(int num, std::vector< int > oset)
static BOOLEAN pa(leftv res, leftv args)
static BOOLEAN tsets(leftv res, leftv args)
static ideal T_1h(ideal h)
static std::vector< int > fvarsvalue(int vnum, std::vector< int > fvars)
static std::vector< int > commonedge(poly p, poly q)
static std::vector< int > v_minus(std::vector< int > v1, std::vector< int > v2)
static bool IsinL(int a, std::vector< int > vec)
static BOOLEAN tnabvl(leftv res, leftv args)
BOOLEAN nfaces1(leftv res, leftv args)
static std::vector< int > tnab(std::vector< std::vector< int > > hvs, std::vector< std::vector< int > > nvs, std::vector< std::vector< int > > bvs)
static BOOLEAN cNew(leftv res, leftv args)
static std::vector< std::vector< int > > listsinsertlist(std::vector< std::vector< int > > gset, int a, int b)
static std::vector< std::vector< int > > vsMinusvs(std::vector< std::vector< int > > vs1, std::vector< std::vector< int > > vs2)
static BOOLEAN comedg(leftv res, leftv args)
static poly pMaken(std::vector< int > vbase)
static std::vector< std::vector< int > > value1l(std::vector< std::vector< int > > mvs, std::vector< std::vector< int > > lks, std::vector< std::vector< int > > vecs, std::vector< int > av, std::vector< int > bv)
static BOOLEAN idModulo(leftv res, leftv args)
static ideal idMaken(std::vector< std::vector< int > > vecs)
static std::vector< int > vecIntersection(std::vector< int > p, std::vector< int > q)
static std::vector< std::vector< int > > penface(poly p, poly q, poly g, int vert)
static ideal idMake(std::vector< std::vector< int > > vecs)
static std::vector< std::vector< int > > vsMinusv(std::vector< std::vector< int > > vecs, std::vector< int > vec)
static intvec * gradedpiece1n(ideal h, poly a, poly b)
static std::vector< std::vector< int > > value2l(std::vector< std::vector< int > > mvs, std::vector< std::vector< int > > lks, std::vector< std::vector< int > > mts, std::vector< std::vector< int > > lkts, std::vector< std::vector< int > > vecs, std::vector< int > av, std::vector< int > bv)
static BOOLEAN isoNumber(leftv res, leftv args)
static BOOLEAN makeSimplex(leftv res, leftv args)
static bool vInvsl(std::vector< int > vec, std::vector< std::vector< int > > vecs)
static std::vector< std::vector< int > > mabtv(std::vector< std::vector< int > > hvs, std::vector< std::vector< int > > Mv, std::vector< int > av, std::vector< int > bv)
static BOOLEAN fgp(leftv res, leftv args)
static bool tNab(std::vector< std::vector< int > > hvs, std::vector< int > pv, std::vector< std::vector< int > > bvs)
static int valency(ideal h, poly p)
static std::vector< std::vector< int > > value2(std::vector< std::vector< int > > mvs, std::vector< std::vector< int > > nvs, std::vector< std::vector< int > > mts, std::vector< std::vector< int > > nts, std::vector< std::vector< int > > vecs, std::vector< int > av, std::vector< int > bv)
static std::vector< int > phimagel(std::vector< int > fv, std::vector< int > av, std::vector< int > bv)
static BOOLEAN stars(leftv res, leftv args)
static std::vector< int > keeporder(std::vector< int > vec)
static std::vector< std::vector< int > > p_new(ideal Xo, ideal Sigma)
static BOOLEAN newDegree(leftv res, leftv args)
static std::vector< std::vector< int > > Nabv(std::vector< std::vector< int > > hvs, std::vector< int > av, std::vector< int > bv)
static ideal trisets(ideal h)
static int idvert(ideal h)
static void firstorderdef_setup(SModulFunctions *p)
static ideal SimFacset(poly p)
static std::vector< std::vector< int > > links_new(poly a, ideal Xo, ideal Sigma, int vert, int ord)
static std::vector< std::vector< poly > > idMakei(std::vector< std::vector< int > > mv, std::vector< std::vector< int > > vecs)
static ideal psubset(poly p)
static BOOLEAN bprime(leftv res, leftv args)
static BOOLEAN pConstant(leftv res, leftv args)
static bool vInp(int m, poly p)
static BOOLEAN dimsim(leftv res, leftv args)
static std::vector< std::vector< int > > ofindbases(int num, std::vector< int > bset, std::vector< std::vector< int > > gset)
static BOOLEAN fgpl(leftv res, leftv args)
static bool p_Ifsfree(poly P)
static int redefinedeg(poly p, int num)
static intvec * edgemat(poly p, poly q)
static BOOLEAN psMinusp(leftv res, leftv args)
static bool nabtconditionv(std::vector< std::vector< int > > hvs, std::vector< int > pv, std::vector< int > qv)
static BOOLEAN SRideal(leftv res, leftv args)
static std::vector< std::vector< int > > phi1(poly a, ideal Sigma)
static bool condition2for2nv(std::vector< std::vector< int > > hvs, std::vector< int > pv, std::vector< int > qv, std::vector< int > fv)
static std::vector< int > freevars(int n, std::vector< int > bset, std::vector< std::vector< int > > gset)
static BOOLEAN stellarsubdivision(leftv res, leftv args)
static BOOLEAN idcomplement(leftv res, leftv args)
static std::vector< std::vector< int > > phi2(poly a, ideal Xo, ideal Sigma)
static int isoNum(poly p, ideal I, poly a, poly b)
static BOOLEAN isSim(leftv res, leftv args)
static ideal IsSimplex(ideal h)
static BOOLEAN gd(leftv res, leftv args)
static std::vector< std::vector< int > > vsUnion(std::vector< std::vector< int > > vs1, std::vector< std::vector< int > > vs2)
static BOOLEAN nabvl(leftv res, leftv args)
static BOOLEAN fb(leftv res, leftv args)
static ideal idmodulo(ideal h1, ideal h2)
static ideal idadda(ideal h1, ideal h2)
static intvec * gradedpiece2n(ideal h, poly a, poly b)
static ideal idMake3(std::vector< std::vector< int > > vecs)
static ideal complementsimplex(ideal h)
static ideal c_New(ideal Io, ideal sig)
static std::vector< int > make1(int n)
static ideal qringadd(ideal h1, ideal h2, int deg)
static BOOLEAN eqsolve1(leftv res, leftv args)
static std::vector< std::vector< int > > vAbsorb(std::vector< int > bset, std::vector< std::vector< int > > gset)
static ideal finda(ideal h, poly S, int ddeg)
static std::vector< std::vector< int > > soleli1(std::vector< std::vector< int > > eqs)
static std::vector< int > vMake(poly p)
static std::vector< int > subspacet1(int num, std::vector< std::vector< int > > ntvs)
static std::vector< std::vector< int > > vsMake(ideal h)
static BOOLEAN numdim(leftv res, leftv args)
static bool vEvl(std::vector< int > vec1, std::vector< int > vec2)
static BOOLEAN vsIntersec(leftv res, leftv args)
static BOOLEAN support(leftv res, leftv args)
static std::vector< std::vector< int > > bsubsets_1(poly b)
static BOOLEAN genstt(leftv res, leftv args)
static void TimeShow(clock_t t_construct, clock_t t_solve, clock_t t_value, clock_t t_total)
static intvec * dmat(poly a, poly b)
static BOOLEAN nonf2f(leftv res, leftv args)
static std::vector< std::vector< int > > stellarsub(poly a, ideal h)
static void equmab(int num)
static BOOLEAN sgpl(leftv res, leftv args)
static std::vector< int > support1(poly p)
static bool nabconditionv(std::vector< std::vector< int > > hvs, std::vector< int > pv, std::vector< int > av, std::vector< int > bv)
static std::vector< int > support2(poly p)
static std::vector< std::vector< int > > p_change(ideal Sigma)
static std::vector< std::vector< int > > vecqring(std::vector< std::vector< int > > vec1, std::vector< std::vector< int > > vec2)
static std::vector< int > gdegree(poly a, poly b)
static ideal id_sfmon(ideal h)
static ideal triangulations1(ideal h, poly p, int vert)
static int id_maxdeg(ideal h)
static std::vector< int > vertset(std::vector< std::vector< int > > vecs)
static ideal id_complement(ideal h)
static ideal p_a(ideal h)
static std::vector< std::vector< int > > tetraface(poly p, poly q, int vert)
static std::vector< std::vector< int > > eli2(int num, std::vector< int > bset, std::vector< std::vector< int > > gset)
static ideal triangulations3(ideal h, poly p, poly q, poly g, int vert)
static std::vector< std::vector< int > > vs_subsets(std::vector< std::vector< int > > vs)
static std::vector< int > vecUnion(std::vector< int > vec1, std::vector< int > vec2)
static BOOLEAN sgp(leftv res, leftv args)
static intvec * Tmat(std::vector< std::vector< int > > vecs)
static std::vector< std::vector< int > > canonicalbase(int n)
static BOOLEAN idsr(leftv res, leftv args)
static std::vector< std::vector< int > > minisolve(std::vector< std::vector< int > > solve, std::vector< int > index)
static ideal genst(ideal h, poly a, poly b)
static BOOLEAN linkn(leftv res, leftv args)
static std::vector< int > vecMinus(std::vector< int > vec1, std::vector< int > vec2)
static std::vector< std::vector< int > > Mabv(ideal h, poly a, poly b)
static std::vector< int > gensindex(ideal M, ideal ids)
static BOOLEAN Valency(leftv res, leftv args)
static std::vector< int > makeequation(int i, int j, int t)
static bool mabconditionv(std::vector< std::vector< int > > hvs, std::vector< int > pv, std::vector< int > av, std::vector< int > bv)
static std::vector< std::vector< int > > boundary(poly a)
static ideal idMinus(ideal h1, ideal h2)
int SI_MOD_INIT() cohomo(SModulFunctions *p)
static int dim_sim(ideal h)
static std::vector< std::vector< int > > star(poly a, ideal h)
static BOOLEAN stellarremain(leftv res, leftv args)
static ideal getpresolve(ideal h)
static BOOLEAN nabtvl(leftv res, leftv args)
static std::vector< int > make0(int n)
static std::vector< std::vector< int > > subspacetn(std::vector< std::vector< int > > N, std::vector< int > tN, std::vector< std::vector< int > > ntvs)
static int pcoef(poly p, int m)
static ideal triangulations2(ideal h, poly p, poly q, int vert)
static std::vector< std::vector< int > > getvector(ideal h, int n)
static std::vector< std::vector< int > > gpl(ideal h, poly a, poly b)
static BOOLEAN nfaces3(leftv res, leftv args)
static std::vector< std::vector< int > > nabtv(std::vector< std::vector< int > > hvs, std::vector< std::vector< int > > Nv, std::vector< int > av, std::vector< int > bv)
static BOOLEAN p_New(leftv res, leftv args)
static BOOLEAN Links(leftv res, leftv args)
static poly pMake(std::vector< int > vbase)
static BOOLEAN nfaces2(leftv res, leftv args)
static std::vector< std::vector< int > > value1(std::vector< std::vector< int > > mvs, std::vector< std::vector< int > > nvs, std::vector< std::vector< int > > vecs, std::vector< int > av, std::vector< int > bv)
static bool IsInX(poly p, ideal X)
static intvec * gradedpiece1nl(ideal h, poly a, poly b, int set)
static std::vector< std::vector< int > > links(poly a, ideal h)
static std::vector< std::vector< int > > supports(ideal h)
static BOOLEAN pb(leftv res, leftv args)
static std::vector< int > ofindbases1(int num, int vnum, std::vector< int > bset, std::vector< std::vector< int > > gset)
static std::vector< std::vector< int > > vsIntersection(std::vector< std::vector< int > > vs1, std::vector< std::vector< int > > vs2)
static ideal sfreemon(ideal h, int deg)
static int existIn(poly b, ideal Xs)
static std::vector< std::vector< int > > supports2(ideal h)
static BOOLEAN pChange(leftv res, leftv args)
static std::vector< std::vector< int > > gpl2(ideal h, poly a, poly b)
static std::vector< int > numfree(ideal h)
static std::vector< int > eli1(std::vector< int > eq1, std::vector< int > eq2)
static ideal idsrRing(ideal h)
static ideal idMinusp(ideal I, poly p)
static std::vector< std::vector< int > > triface(poly p, int vert)
static BOOLEAN idminus(leftv res, leftv args)
static ideal p_b(ideal h, poly a)
static BOOLEAN mabvl(leftv res, leftv args)
static int num4dim(ideal h, int n)
static std::vector< int > findalphan(std::vector< std::vector< int > > N, std::vector< int > tN)
static BOOLEAN ifIsomorphism(leftv res, leftv args)
static int ifIso(poly p, poly q, poly f, poly g, poly a, poly b)
static intvec * gradedpiece2nl(ideal h, poly a, poly b)
static std::vector< std::vector< int > > b_subsets(std::vector< int > vec)
static std::vector< std::vector< int > > p_constant(ideal Xo, ideal Sigma)
static BOOLEAN existsub(leftv res, leftv args)
static ideal mingens(ideal h, poly a, poly b)
static std::vector< int > phimage(std::vector< int > pv, std::vector< int > av, std::vector< int > bv)
static bool vsubset(std::vector< int > vec1, std::vector< int > vec2)
static ideal findb(ideal h)
static BOOLEAN t1h(leftv res, leftv args)
static std::vector< poly > pMakei(std::vector< std::vector< int > > mv, std::vector< int > vbase)
static poly pMake3(std::vector< int > vbase)
const CanonicalForm int s
const Variable & v
< [in] a sqrfree bivariate poly
static int max(int a, int b)
void WerrorS(const char *s)
ideal scKBase(int deg, ideal s, ideal Q, intvec *mv)
#define idDelete(H)
delete an ideal
BOOLEAN idInsertPoly(ideal h1, poly h2)
insert h2 into h1 (if h2 is not the zero polynomial) return TRUE iff h2 was indeed inserted
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
ideal idAdd(ideal h1, ideal h2)
h1 + h2
#define IMATELEM(M, I, J)
idhdl ggetid(const char *n)
idhdl enterid(const char *s, int lev, int t, idhdl *root, BOOLEAN init, BOOLEAN search)
BOOLEAN iiMake_proc(idhdl pn, package pack, leftv args)
INST_VAR sleftv iiRETURNEXPR
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)
void rem(unsigned long *a, unsigned long *q, unsigned long p, int °a, int degq)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
The main handler for Singular numbers which are suitable for Singular polynomials.
static int index(p_Length length, p_Ord ord)
poly p_Subst(poly p, int n, poly e, const ring r)
BOOLEAN p_EqualPolys(poly p1, poly p2, const ring r)
static poly p_Mult_q(poly p, poly q, const ring r)
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent @Note: the integer VarOffset encodes:
static BOOLEAN p_DivisibleBy(poly a, poly b, const ring r)
void rChangeCurrRing(ring r)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
static long pTotaldegree(poly p)
#define pSetCoeff(p, n)
deletes old coeff before setting the new one
#define pGetExp(p, i)
Exponent.
#define pEqualPolys(p1, p2)
#define pCopy(p)
return a copy of the poly
void PrintS(const char *s)
ring rDefault(const coeffs cf, int N, char **n, int ord_size, rRingOrder_t *ord, int *block0, int *block1, int **wvhdl, unsigned long bitmask)
static short rVar(const ring r)
#define rVar(r) (r->N)
ideal id_Add(ideal h1, ideal h2, const ring r)
h1 + h2
ideal idInit(int idsize, int rank)
initialise an ideal / module
ideal id_MaxIdeal(const ring r)
initialise the maximal ideal (at 0)
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size