# vertices(ToricDivisor) -- compute the vertices of the associated polytope

## Synopsis

• Function: vertices
• Usage:
vertices D
• Inputs:
• D, ,
• Outputs:
• , whose columns are the vertices of the associated polytope

## Description

On a complete normal toric variety, the polyhedron associated to a Cartier divisor is a lattice polytope. Given a torus-invariant Cartier divisor on a normal toric variety, this method returns an integer matrix whose columns correspond to the vertices of the associated lattice polytope. For a non-effective Cartier divisor, this methods returns null. When the divisor is ample, the normal fan the corresponding polytope equals the fan associated to the normal toric variety.

On the projective plane, the associate polytope is either empty, a point, or a triangle.

 i1 : PP2 = toricProjectiveSpace 2; i2 : assert (null === vertices (-PP2_0)) i3 : vertices (0*PP2_0) o3 = 0 2 1 o3 : Matrix ZZ <--- ZZ i4 : assert isAmple PP2_0 i5 : V1 = vertices (PP2_0) o5 = | 0 1 0 | | 0 0 1 | 2 3 o5 : Matrix ZZ <--- ZZ i6 : X1 = normalToricVariety V1; i7 : assert (set rays X1 === set rays PP2 and max X1 === max PP2) i8 : assert isAmple (2*PP2_0) i9 : V2 = vertices (2*PP2_0) o9 = | 0 2 0 | | 0 0 2 | 2 3 o9 : Matrix ZZ <--- ZZ i10 : X2 = normalToricVariety V2; i11 : assert (rays X2 === rays X1 and max X2 === max X1)

On a Hirzebruch surface, the polytopes associated to non-ample Cartier divisors give rise to other normal toric varieties.

 i12 : FF2 = hirzebruchSurface 2; i13 : assert not isAmple FF2_2 i14 : V3 = vertices FF2_2 o14 = | 0 1 | | 0 0 | 2 2 o14 : Matrix ZZ <--- ZZ i15 : normalToricVariety V3 -- a degenerated version of the projective line o15 = normalToricVariety ({{1, 0}, {-1, 0}}, {{0}, {1}}) o15 : NormalToricVariety i16 : assert isDegenerate normalToricVariety V3 i17 : assert not isAmple FF2_3 i18 : V4 = vertices FF2_3 o18 = | 0 0 2 | | 0 1 1 | 2 3 o18 : Matrix ZZ <--- ZZ i19 : normalToricVariety V4 -- a weighted projective space o19 = normalToricVariety ({{1, 0}, {-1, 2}, {0, -1}}, {{0, 1}, {0, 2}, {1, 2}}) o19 : NormalToricVariety i20 : vertices FF2_1 o20 = 0 2 1 o20 : Matrix ZZ <--- ZZ i21 : assert isAmple (FF2_2 + FF2_3) i22 : V5 = vertices (FF2_2 + FF2_3) o22 = | 0 1 0 3 | | 0 0 1 1 | 2 4 o22 : Matrix ZZ <--- ZZ i23 : X3 = normalToricVariety V5 -- isomorphic Hirzebruch surface o23 = X3 o23 : NormalToricVariety i24 : assert (set rays X3 === set rays FF2)