----[ parameters ]-----------------------------------------------
M := $cocoa5.AddParamOrdMat(DegRevLexMat(3), 1); // compatible Term Ordering
Use ZZ/(32003)[a, x,y,z], Ord(M);
I := Ideal((a-1)x+(a^2+a)y,(a+1)x + y);
GBasis5(I);
GBasis5x(I, Record(NumParams=1));
----[ Twin floats ]--------------------------------------------------
Use QQ[x[0..5]];
L := [Randomized(DensePoly(4)) | I In 1..2];
Time LT(Ideal(L));
LT5x(Ideal(L), Record(FloatPrecision=128));
----[ Elimination ]----------------
Use QQ[x,y,z,w[3..5]], Weights([7, 4, 3, 1, 1, 1]);
I := Ideal(
x - 7413431 w[4]^7 - 9162341 w[3]*w[4]*w[5]^5,
y - 6521443 w[4]^4 - 2312257 w[3]^2*w[4]*w[5],
z - 5329421 w[4]^3 - 2122414 w[3]*w[5]^2
);
Time E := Elim([w[3],w[4]], I);
E5 := Elim5([w[3],w[4]], I); // usually much faster than CoCoA4
E = E5;
----[ Intersection ]-------------------------------
Use QQ[x,y,z], Weights(1,2,1);
I := Ideal(xy, z^2);
J := Ideal(yz, x-z);
Intersection5(I, J);
// with parameters
M := CoCoA5.AddParamOrdMat(DegRevLexMat(3), 2); -- 2 parameters
Use ZZ/(32003)[a,b, x,y,z], Ord(M);
II := Ideal(x-y);
I := (a-b+1) * x * II;
J := (a+1) * y * II;
Intersection5x(I, J, Record(NumParams=2)); -- 2 parameters
----[ Syzygies ]--------------------------------------
Use ZZ/(101)[x,y,z], Weights(1,2,4);
L := [Vector(x^2,x^2), Vector(xy,xy)];
S5 := SyzOfGens5(L);
----[ Modules ]---------------------------------------------------------
Use QQ[x,y,z], PosTo;
M := Module([x,z], [z,y]);
ReducedGBasis(M);
ReducedGBasis5(M);
ReducedGBasis5x(M, Record(IsPosTo=False));
Use QQ[x,y,z], Weights([1,2,4]);
M := Module([x^2-y,1],[x^4-z,y^2]);
Info5 := Record();
Info5.ModuleShifts := Mat([[0,2]]);
GBasis5x(M, Info5);
// Grading given via OrdMat and Grading Dim
OrdMat := Mat([[1,1,1],[2,1,1],[1,1,0]]); // Ring Grading (first 2 Rows)
// Plus order (last row)
Use ZZ/(101)[x,y,z], Ord(OrdMat), ToPos;
M := Module([y-x,0,0], [x,0,z], [0,y^2-z^2,0]);
X := ReducedGBasis5(Module(Gens(M)));
// GBasis on a module with shifts
Info5 := Record();
Info5.OrdMat := OrdMat;
Info5.GradingDim := 2;
Info5.ModuleShifts := Mat([[3,1,2],[2,2,5]]); // GrDim rows!!
ReducedGBasis5x(M, Info5);
|