up previous next
 GBasis5, and more

calculations using the CoCoAServer
 Syntax
 ``` -operation-5(same as -operation-) -operation-5x(same as -operation-, Info5: RECORD) GBasis5(M:IDEAL, MODULE):LIST GBasis5x(M:IDEAL, MODULE, Info5: RECORD):LIST ```

 Description
These functions are implemented in CoCoALib (requires an active CoCoAServer).

Mostly the same as GBasis , Intersection , Elim , but computed using the CoCoAServer.

All the 5 functions behave like the corresponding function in CoCoA-4, i.e. should give the same output!

All the 5x functions allow extra options to be set, such as (twin)floating point computations, parameters, shifts, different orderings, gradings...

NB if you set incompatible options with the CurrentRing (e.g. a different grading or ordering) the resulting GBasis will be incompatible with CurrentRing... of course!

 Example
 ``` ----[ 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); ```