10#if !defined(__CYGWIN__) || defined(STATIC_VERSION)
99 for(
unsigned i=0;
i<
pv.size();
i++)
114 for(
unsigned i=0;
i<
pvs.size();
i++)
150 std::vector<int>
inte;
151 for(
i=0;
i<
p.size();
i++)
176 if(
vec1.size()==0 &&
vec2.size()==0)
186static bool vInvsl(std::vector<int>
vec, std::vector<std::vector<int> >
vecs)
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)
228 std::vector<std::vector<int> >
rem;
239static std::vector<std::vector<int> >
vsUnion(std::vector<std::vector<int> >
vs1, std::vector<std::vector<int> >
vs2)
242 std::vector<std::vector<int> >
vs=
vs1;
253static std::vector<std::vector<int> >
vsIntersection(std::vector<std::vector<int> >
vs1, std::vector<std::vector<int> >
vs2)
256 std::vector<std::vector<int> >
vs;
289 std::vector<std::vector<int> >
vecs;
290 std::vector<int>
vec;
328 std::vector<std::vector<int> >
vecs;
329 std::vector<int>
vec;
345 int n=
vbase.size(); poly
p,q=0;
360 int lv=
vecs.size(),
i;
423 std::vector<int>
vbase;
441 std::vector<int>
vec;
442 std::vector<std::vector<int> >
vecs;
454static std::vector<std::vector<int> >
vecqring(std::vector<std::vector<int> >
vec1, std::vector<std::vector<int> >
vec2)
483 int i,lv=
vecs.size();
500 std::vector<std::vector<int> >
vecs;
980 for(
unsigned i=0;
i<
h2v.size();
i++)
996static std::vector<int>
eli1(std::vector<int>
eq1,std::vector<int>
eq2)
1041 std::vector<int>
yaya;
1052static std::vector<std::vector<int> >
soleli1( std::vector<std::vector<int> >
eqs)
1055 std::vector<int>
yaya;
1059 re.push_back(
eqs[0]);
1065 for(
i=1;
i<
re.size();
i++)
1085static std::vector<int>
freevars(
int n, std::vector<int>
bset, std::vector<std::vector<int> >
gset)
1125static std::vector<std::vector<int> >
vAbsorb( std::vector<int>
bset,std::vector<std::vector<int> >
gset)
1172 std::vector<int> base;
1188 std::vector<int>
vec;
1201 std::vector<int>
vec;
1213 std::vector<std::vector<int> >
goodset;
1230 std::vector<std::vector<int> >
bases;
1232 if (
fvars.size()==0)
1254static std::vector<std::vector<int> >
eli2(
int num, std::vector<int>
bset,std::vector<std::vector<int> >
gset)
1298 for(
i=0;
i<
X.size();
i++)
1341 std::vector<int>
as;
1407 std::vector<int>
vert;
1408 std::vector<std::vector<int> >
vvs;
1435 for(
i=0;
i<
res.size();
i++)
1563 std::vector<int>
eq;
1587 for(
int i=0;
i<3;
i++)
1605 int i,lv=
vecs.size();
1639static std::vector<int>
subspace1(std::vector<std::vector<int> >
mv, std::vector<int>
bv)
1642 std::vector<int> base;
1656static std::vector<poly>
pMakei(std::vector<std::vector<int> >
mv,std::vector<int>
vbase)
1659 std::vector<poly>
h1;
1661 for(
int i=0;
i<n;
i++)
1670static std::vector<std::vector<poly> >
idMakei(std::vector<std::vector<int> >
mv,std::vector<std::vector<int> >
vecs)
1672 int i,lv=
vecs.size();
1673 std::vector<std::vector<poly> >
re;
1674 std::vector<poly>
h;
1734 std::vector<std::vector<int> >
suu;
1745 PrintS(
"No element considered!\n");
1763static 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)
1776static bool condition3for2(std::vector<std::vector<int> >
hvs, std::vector<int>
pv, std::vector<int>
qv, std::vector<int>
av, std::vector<int>
bv)
1778 std::vector<int>
v1,
v2,
v3;
1804 WerrorS(
"presolve.lib are not loaded!");
1826 std::vector<int>
fvar;
1844 std::vector<std::vector<int> >
vecs;
1845 std::vector<int>
vec;
1864 std::vector<int>
vec;
1865 std::vector<std::vector<int> >
vecs;
1926static std::vector<int>
findalpha(std::vector<std::vector<int> >
mv, std::vector<int>
bv)
1928 std::vector<int>
alset;
1929 for(
unsigned i=0;
i<
mv.size();
i++)
1943 int i,
j, t, n=
ntvs.size();
1968static std::vector<std::vector<int> >
subspacet(std::vector<std::vector<int> >
mv, std::vector<int>
bv,std::vector<std::vector<int> >
ntvs)
1971 std::vector<std::vector<int> >
subases;
1972 for(
unsigned i=0;
i<
alset.size();
i++)
1982static 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)
1984 std::vector<int>
v1,var;
1985 std::vector<std::vector<int> >
vars;
1986 for(
unsigned i=0;
i<
Mv.size();
i++)
1988 for(
unsigned j=
i+1;
j<
Mv.size();
j++)
1996 vars.push_back(var);
2007 int t0,t1,t2,
i,
j,t,
m;
2013 PrintS(
"The homomorphism should map onto:\n");
2044 for(t1=
t0+1;t1<
vars.size();t1++)
2046 for(t2=t1+1;t2<
vars.size();t2++)
2069 PrintS(
"this is the solution for ideal :\n");
2073 PrintS(
"this is the solution for subspace:\n");
2077 PrintS(
"This is the solution of coefficients:\n");
2083 PrintS(
"No element considered!");
2105static std::vector<std::vector<int> >
Nabv(std::vector<std::vector<int> >
hvs, std::vector<int>
av, std::vector<int>
bv)
2107 std::vector<std::vector<int> >
vecs;
2124 std::vector<int>
v1;
2134static 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)
2136 std::vector<int>
v1,var;
2137 std::vector<std::vector<int> >
vars;
2138 for(
unsigned i=0;
i<
Nv.size();
i++)
2140 for(
unsigned j=
i+1;
j<
Nv.size();
j++)
2147 vars.push_back(var);
2156static bool tNab(std::vector<std::vector<int> >
hvs, std::vector<int>
pv, std::vector<std::vector<int> >
bvs)
2158 std::vector<int>
sv;
2159 if(
bvs.size()<=1)
return false;
2160 for(
unsigned i=0;
i<
bvs.size();
i++)
2171static std::vector<int>
tnab(std::vector<std::vector<int> >
hvs,std::vector<std::vector<int> >
nvs,std::vector<std::vector<int> >
bvs)
2173 std::vector<int>
pv,
vec;
2174 for(
unsigned j=0;
j<
nvs.size();
j++)
2186static std::vector<int>
phimage(std::vector<int>
pv, std::vector<int>
av, std::vector<int>
bv)
2195static 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)
2198 std::vector<int>
pv, base;
2199 std::vector<std::vector<int> >
bases;
2200 for(
unsigned t=0;t<
vecs.size();t++)
2202 for(
unsigned i=0;
i<
mvs.size();
i++)
2205 for(
j=0;
j<
nvs.size();
j++)
2209 base.push_back(
vecs[t][
j]);
2221 WerrorS(
"Errors in Equations solving (Values Finding)!");
2226 bases.push_back(base);
2245 int b=
vecs[0].size();
2279 std::vector<std::vector<int> >
mv=
Mabv(
h,a,
b);
2294 std::vector<std::vector<int> >
solsm;
2298 for(
j=0;
j<
vec.size();
j++)
2327 for(
i=0;
i<
tnv.size();
i++)
2330 bad.push_back(
co+1);
2355 std::vector<std::vector<int> >
suu;
2385 std::vector<std::vector<int> >
solve;
2423static std::vector<int>
findalphan(std::vector<std::vector<int> >
N, std::vector<int>
tN)
2426 for(
i=0;
i<
N.size();
i++)
2439static std::vector<std::vector<int> >
subspacetn(std::vector<std::vector<int> >
N, std::vector<int>
tN, std::vector<std::vector<int> >
ntvs)
2443 std::vector<std::vector<int> >
subases;
2458static 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)
2461 std::vector<int>
pv,
qv, base;
2462 std::vector<std::vector<int> >
bases;
2469 for(
unsigned t=0;t<
vecs.size();t++)
2471 for(
unsigned i=0;
i<
mts.size();
i++)
2481 for(
j=0;
j<
nts.size();
j++)
2487 base.push_back(
vecs[t][
j]);
break;
2491 base.push_back(-
vecs[t][
j]);
break;
2494 if(
j==
nts.size()) {base.push_back(0);}
2499 WerrorS(
"Errors in Values Finding(value2)!");
2504 bases.push_back(base);
2518 for(
unsigned i=0;
i<
pvs.size();
i++)
2560 for(
int t1=
t0+1;t1<
ntvs.size();t1++)
2562 for(
int t2=t1+1;t2<
ntvs.size();t2++)
2612 std::vector<int>
bv,
av;
2613 std::vector<std::vector<int> >
solve;
2625 PrintS(
"This is a set according to current b:\n");
2643 Print(
"There are %d graded pieces in total.\n",
gp);
2648static std::vector<int>
phimagel(std::vector<int>
fv, std::vector<int>
av, std::vector<int>
bv)
2650 std::vector<int>
nv;
2658static 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)
2661 std::vector<int>
pv;
2662 std::vector<int> base;
2663 std::vector<std::vector<int> >
bases;
2664 for(
unsigned t=0;t<
vecs.size();t++)
2666 for(
unsigned i=0;
i<
mvs.size();
i++)
2669 for(
j=0;
j<
lks.size();
j++)
2673 base.push_back(
vecs[t][
j]);
break;
2680 WerrorS(
"Errors in Values Finding(value1l)!");
2684 bases.push_back(base);
2700 PrintS(
"__________________________________________________________\n");
2720 for(
i=0;
i<
tnv.size();
i++)
2723 bad.push_back(
co+1);
2749 std::vector<std::vector<int> >
suu;
2791static 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)
2793 std::vector<int>
pv,
qv,base;
2795 std::vector<std::vector<int> >
bases;
2800 for(
unsigned t=0;t<
vecs.size();t++)
2802 for(
unsigned i=0;
i<
mts.size();
i++)
2818 base.push_back(
vecs[t][
j]);
break;
2822 base.push_back(-
vecs[t][
j]);
break;
2833 WerrorS(
"Errors in Values Finding!");
2838 bases.push_back(base);
2873 for(
int t1=
t0+1;t1<
ntvs.size();t1++)
2875 for(
int t2=t1+1;t2<
ntvs.size();t2++)
2927 if(
solve.size() > 0)
2972 std::vector<int>
pv;
2987 std::vector<std::vector<int> >
fvs0,
fvs;
2992 for(
unsigned i=0;
i<
fvs0.size();
i++)
3044 for(
unsigned i=0;
i<
fv1.size();
i++)
3083 for(
unsigned i=0;
i<
fvs2.size();
i++)
3111 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);
3116 for(
unsigned i=0;
i<
evec.size();
i++)
3135 for(
unsigned i=0;
i<
evec.size();
i++)
3142 for(
unsigned i=0;
i<
fvs3.size();
i++)
3159 for(
unsigned i=0;
i<
evec.size();
i++)
3184 for(
unsigned i=0;
i<
vecs.size();
i++)
3225static std::vector<std::vector<int> >
vsMinusvs(std::vector<std::vector<int> >
vs1, std::vector<std::vector<int> >
vs2)
3227 std::vector<std::vector<int> >
vs=
vs1;
3228 for(
unsigned i=0;
i<
vs2.size();
i++)
3235static std::vector<std::vector<int> >
vs_subsets(std::vector<std::vector<int> >
vs)
3237 std::vector<std::vector<int> >
sset,
bv;
3238 for(
unsigned i=0;
i<
vs.size();
i++)
3295 std::vector<int>
ev;
3331 for(
unsigned i=0;
i<
ss.size();
i++)
3348 for(
unsigned i=0;
i<
ss.size();
i++)
3380 WerrorS(
"Cannot find the links smartly!");
3390 for(
unsigned i=0;
i<
bs.size();
i++)
3417static int ifIso(poly
p, poly q, poly
f, poly
g, poly a, poly
b)
3420 std::vector<int>
v1=
phimagel(
vp,
va,
vb),
v2=
phimagel(
vq,
va,
vb),
v3=
phimagel(
vf,
va,
vb),
v4=
phimagel(
vg,
va,
vb);
3445static std::vector<int>
v_minus(std::vector<int>
v1, std::vector<int>
v2)
3447 std::vector<int>
vec;
3448 for(
unsigned i=0;
i<
v1.size();
i++)
3458 std::vector<int>
av,
bv;
3477 for(
i=0;
i<
X.size();
i++)
3491 std::vector<std::vector<int> >
vecs;
3515 for(
i=0;
i<
lk.size();
i++)
3519 for(
j=0;
j<
bys.size();
j++)
3534 std::vector<std::vector<int> >
bset;
3535 for(
unsigned i=0;
i<
bvs.size();
i++)
3537 for(
int j=0;
j!=
i;
j++)
3645 poly
p= (poly)
h->Data();
3649 poly q= (poly)
h->Data();
3681 poly
p= (poly)
h->Data();
3685 poly q= (poly)
h->Data();
3698 poly
p= (poly)
h->Data();
3702 poly q= (poly)
h->Data();
3755 poly
p= (poly)
h->Data();
3772 poly q= (poly)
h->Data();
3776 int d= (
int)(
long)
h->Data();
3794 poly
p= (poly)
h->Data();
3798 poly q= (poly)
h->Data();
3816 poly
p= (poly)
h->Data();
3820 poly q= (poly)
h->Data();
3824 int d= (
int)(
long)
h->Data();
3843 poly
p= (poly)
h->Data();
3847 poly q= (poly)
h->Data();
3865 poly
p= (poly)
h->Data();
3869 poly q= (poly)
h->Data();
3887 poly
p= (poly)
h->Data();
3891 poly q= (poly)
h->Data();
3905 poly
p= (poly)
h->Data();
3939 poly
p= (poly)
h->Data();
3943 int d= (
int)(
long)
h->Data();
3961 poly
p= (poly)
h->Data();
3965 poly q= (poly)
h->Data();
3969 int d= (
int)(
long)
h->Data();
3988 poly
p= (poly)
h->Data();
3992 poly q= (poly)
h->Data();
3996 poly
g= (poly)
h->Data();
4000 int d= (
int)(
long)
h->Data();
4014 std::vector<int>
bset,
bs;
4015 std::vector<std::vector<int> >
gset;
4018 int n= (
int)(
long)
h->Data();
4032 else if(
bs.size()==0)
4036 WerrorS(
"Errors in T^1 Equations Solving!");
4073 poly
p= (poly)
h->Data();
4090 poly
p= (poly)
h->Data();
4094 poly q= (poly)
h->Data();
4114 poly
p= (poly)
h->Data();
4118 poly q= (poly)
h->Data();
4126 for(
unsigned i=0;
i<
tnv.size();
i++)
4164 poly
p= (poly)
h->Data();
4168 poly q= (poly)
h->Data();
4186 poly
p= (poly)
h->Data();
4190 poly q= (poly)
h->Data();
4197 for(
unsigned i=0;
i<
pvs.size();
i++)
4216 poly a= (poly)
h->Data();
4232 int ord= (
int)(
long)
h->Data();
4248 poly
p= (poly)
h->Data();
4311 poly
p= (poly)
h->Data();
4323 poly
p= (poly)
h->Data();
4339 poly
p= (poly)
h->Data();
4356 poly
p= (poly)
h->Data();
4357 std::vector<std::vector<int> >
st=
star(
p,
h1);
4389 poly
p= (poly)
h->Data();
4410 poly
p= (poly)
h->Data();
4457 poly
p= (poly)
h->Data();
4465 poly a= (poly)
h->Data();
4469 poly
b= (poly)
h->Data();
4484 poly
p= (poly)
h->Data();
4488 poly q= (poly)
h->Data();
4492 poly
f= (poly)
h->Data();
4496 poly
g= (poly)
h->Data();
4500 poly a= (poly)
h->Data();
4504 poly
b= (poly)
h->Data();
4521 poly
p= (poly)
h->Data();
4525 int num= (
int)(
long)
h->Data();
4566 int num= (
int)(
long)
h->Data();
4580 p->iiAddCproc(
"",
"findbset",
FALSE,
fb);
4581 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 > subspace1(std::vector< std::vector< int > > mv, std::vector< int > bv)
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 bool condition3for2(std::vector< std::vector< int > > hvs, std::vector< int > pv, std::vector< int > qv, std::vector< int > av, std::vector< int > bv)
static void lpsprint(std::vector< std::vector< poly > > pvs)
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 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)
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 void listprint(std::vector< int > vec)
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 bool condition1for2(std::vector< int > pv, std::vector< int > qv, std::vector< int > bv)
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 void id_print(ideal h)
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 std::vector< int > findalpha(std::vector< std::vector< int > > mv, std::vector< int > bv)
static BOOLEAN stellarremain(leftv res, leftv args)
static void lpprint(std::vector< poly > pv)
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 void gradedpiece1(ideal h, poly a, poly b)
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 void listsprint(std::vector< std::vector< int > > posMat)
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 void gradedpiece2(ideal h, 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 std::vector< std::vector< int > > subspacet(std::vector< std::vector< int > > mv, std::vector< int > bv, std::vector< std::vector< int > > ntvs)
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)
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
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
ideal kStd(ideal F, ideal Q, tHomog h, intvec **w, intvec *hilb, int syzComp, int newIdeal, intvec *vw, s_poly_proc_t sp)
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 pp_Mult_mm(poly p, poly m, 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