GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
## ## these examples should return the same output as described in ## the toric documentation ## gap> LoadPackage("toric"); true # # Chapter 2: 2 cones and semigroups # # gap> L:=[[1,0,0],[1,1,0],[1,1,1],[1,0,1]];; v:=[0,0,1];; gap> InsideCone(v,L); false gap> L:=[[1,0],[3,4]];; v:=[1,-7];; InsideCone(v,L); false gap> L:=[[1,0],[3,4]];; v:=[4,-3];; InsideCone(v,L); false gap> L:=[[1,0],[3,4]];; v:=[4,-4];; InsideCone(v,L); false gap> L:=[[1,0],[3,4]];; v:=[4,-2];; InsideCone(v,L); false gap> L:=[[1,0],[3,4]];; v:=[4,-1];; InsideCone(v,L); false gap> L:=[[1,0],[3,4]];; v:=[4,1];; InsideCone(v,L); true # gap> L:=[[1,0,0],[1,1,0],[1,1,1],[1,0,1]];; v:=[0,0,1];; gap> InDualCone(v,L); true gap> L:=[[1,0],[3,4]];; v:=[1,-7];; InDualCone(v,L); false gap> L:=[[1,0],[3,4]];; v:=[4,-3];; InDualCone(v,L); true gap> L:=[[1,0],[3,4]];; v:=[4,-4];; InDualCone(v,L); false gap> L:=[[1,0],[3,4]];; v:=[4,-2];; InDualCone(v,L); true gap> L:=[[1,0],[3,4]];; v:=[4,-1];; InDualCone(v,L); true gap> L:=[[1,0],[3,4]];; v:=[4,1];; InDualCone(v,L); true # gap> L:=[[1,0],[3,4]];; DualSemigroupGenerators(L); [ [ 0, 0 ], [ 0, 1 ], [ 1, 0 ], [ 2, -1 ], [ 3, -2 ], [ 4, -3 ] ] gap> L:=[[1,0,0],[1,1,0],[1,1,1],[1,0,1]];; gap> DualSemigroupGenerators(L); [ [ 0, 0, 0 ], [ 0, 0, 1 ], [ 0, 1, 0 ], [ 1, -1, 0 ], [ 1, 0, -1 ] ] # gap> Perps:=[[1,0],[-1,0],[0,1],[0,-1]]; [ [ 1, 0 ], [ -1, 0 ], [ 0, 1 ], [ 0, -1 ] ] gap> A:=[0,4,0,3]; [ 0, 4, 0, 3 ] gap> PolytopeLatticePoints(A,Perps); [ [ 0, 0 ], [ 0, 1 ], [ 0, 2 ], [ 0, 3 ], [ 1, 0 ], [ 1, 1 ], [ 1, 2 ], [ 1, 3 ], [ 2, 0 ], [ 2, 1 ], [ 2, 2 ], [ 2, 3 ], [ 3, 0 ], [ 3, 1 ], [ 3, 2 ], [ 3, 3 ], [ 4, 0 ], [ 4, 1 ], [ 4, 2 ], [ 4, 3 ] ] # gap> Cones1:=[[[2,-1],[-1,2]],[[-1,2],[-1,-1]],[[-1,-1],[2,-1]]]; [ [ [ 2, -1 ], [ -1, 2 ] ], [ [ -1, 2 ], [ -1, -1 ] ], [ [ -1, -1 ], [ 2, -1 ] ] ] gap> Faces(Cones1[1]); [ [ 1/2, 1 ], [ 2, 1 ] ] gap> Faces(Cones1[2]); [ [ -2, -1 ], [ -1, 1 ] ] gap> Cones2:=[ [ [2,0,0],[0,2,0],[0,0,2] ], [[2,0,0],[0,2,0],[2,-2,1],[1,2,-2]]]; [ [ [ 2, 0, 0 ], [ 0, 2, 0 ], [ 0, 0, 2 ] ], [ [ 2, 0, 0 ], [ 0, 2, 0 ], [ 2, -2, 1 ], [ 1, 2, -2 ] ] ] gap> Faces(Cones2[1]); [ [ 0, 0, 1 ], [ 0, 1, 0 ], [ 1, 0, 0 ] ] gap> Faces(Cones2[2]); [ [ 1/3, 5/6, 1 ], [ 1/2, 0, -1 ], [ 2, 0, 1 ] ] # gap> MaxCones:=[[[2,0,0],[0,2,0],[0,0,2]],[[2,0,0],[0,2,0],[2,-2,1],[1,2,-2]]];; gap> # this is the set of maximal cones in the fan Delta gap> ToricStar([[1,0]],MaxCones); [ ] gap> ToricStar([[2,0,0],[0,2,0]],MaxCones); [ [ [ 0, 2, 0 ], [ 2, 0, 0 ] ], [ [ 2, 0, 0 ], [ 0, 2, 0 ], [ 0, 0, 2 ] ], [ [ 2, 0, 0 ], [ 0, 2, 0 ], [ 2, -2, 1 ], [ 1, 2, -2 ] ] ] gap> MaxCones:=[ [ [2,0,0],[0,2,0],[0,0,2] ], [ [2,0,0],[0,2,0],[1,1,-2] ] ];; gap> ToricStar([[2,0,0],[0,2,0]],MaxCones); [ [ [ 0, 2, 0 ], [ 2, 0, 0 ] ], [ [ 2, 0, 0 ], [ 0, 2, 0 ], [ 0, 0, 2 ] ], [ [ 2, 0, 0 ], [ 0, 2, 0 ], [ 1, 1, -2 ] ] ] gap> ToricStar([[1,0]],MaxCones); [ ] # # Chapter 3: Affine toric varieties # # gap> phi:=EmbeddingAffineToricVariety([[1,0],[3,4]]); [ x_2, x_1, x_1^2/x_4, x_1^3/x_4^2, x_1^4/x_4^3 ] gap> L:=[[1,0,0],[1,1,0],[1,1,1],[1,0,1]];; gap> phi:=EmbeddingAffineToricVariety(L); [ x_3, x_2, x_1/x_5, x_1/x_6 ] # # Chapter 4: Toric varieties X(\Delta) # gap> DivisorPolytope([6,6,0],[[2,-1],[-1,2],[-1,-1]]); [ 2*x_1-x_2+6, -x_1+2*x_2+6, -x_1-x_2 ] # gap> cones:=[[[2,-1],[-1,2]],[[-1,2],[-1,-1]],[[-1,-1],[2,-1]]];; gap> div:=[6,6,0];; rays:=[[2,-1],[-1,2],[-1,-1]];; # gap> P_Div:=DivisorPolytopeLatticePoints(div,cones,rays); [ [ -6, -6 ], [ -5, -5 ], [ -5, -4 ], [ -4, -5 ], [ -4, -4 ], [ -4, -3 ], [ -4, -2 ], [ -3, -4 ], [ -3, -3 ], [ -3, -2 ], [ -3, -1 ], [ -3, 0 ], [ -2, -4 ], [ -2, -3 ], [ -2, -2 ], [ -2, -1 ], [ -2, 0 ], [ -2, 1 ], [ -2, 2 ], [ -1, -3 ], [ -1, -2 ], [ -1, -1 ], [ -1, 0 ], [ -1, 1 ], [ 0, -3 ], [ 0, -2 ], [ 0, -1 ], [ 0, 0 ], [ 1, -2 ], [ 1, -1 ], [ 2, -2 ] ] # gap> RiemannRochBasis(div,cones,rays); [ 1/(x_1^6*x_2^6), 1/(x_1^5*x_2^5), 1/(x_1^5*x_2^4), 1/(x_1^4*x_2^5), 1/(x_1^4*x_2^4), 1/(x_1^4*x_2^3), 1/(x_1^4*x_2^2), 1/(x_1^3*x_2^4), 1/(x_1^3*x_2^3), 1/(x_1^3*x_2^2), 1/(x_1^3*x_2), 1/x_1^3, 1/(x_1^2*x_2^4), 1/(x_1^2*x_2^3), 1/(x_1^2*x_2^2), 1/(x_1^2*x_2), 1/x_1^2, x_2/x_1^2, x_2^2/x_1^2, 1/(x_1*x_2^3), 1/(x_1*x_2^2), 1/(x_1*x_2), 1/x_1, x_2/x_1, 1/x_2^3, 1/x_2^2, 1/x_2, 1, x_1/x_2^2, x_1/x_2, x_1^2/x_2^2 ] # gap> EulerCharacteristic(cones); 3 # gap> BettiNumberToric(cones,1); 0 gap> BettiNumberToric(cones,2); 1 # gap> CardinalityOfToricVariety(cones,3); 13 gap> CardinalityOfToricVariety(cones,4); 21 gap> CardinalityOfToricVariety(cones,5); 31 gap> CardinalityOfToricVariety(cones,7); 57