# topcomRegularTriangulationWeights(Matrix,List) -- find a list of heights of a regular triangulation

## Description

If the given triangulation is regular, this returns the corresponding list of weights. If we lift each point to this height (hieights can be negative too), then the lower convex hull of these lifted points is the given triangulation. This can be checked via the routine regularSubdivision in the package Polyhedra.

 i1 : A = matrix { {0, -1, 2, 3, 4, -5, 6}, {0, 1, -4, 9, 16, 25, 36}, {0, 1, 8, -27, 64, 125, -216}} o1 = | 0 -1 2 3 4 -5 6 | | 0 1 -4 9 16 25 36 | | 0 1 8 -27 64 125 -216 | 3 7 o1 : Matrix ZZ <--- ZZ i2 : Ts = topcomAllTriangulations A; i3 : #Ts == 25 o3 = true i4 : netList Ts +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ o4 = |{0, 1, 2, 3}|{0, 1, 3, 6}|{0, 2, 3, 6}|{1, 2, 3, 4}|{1, 2, 4, 5}|{1, 3, 4, 5}|{1, 3, 5, 6}|{2, 3, 4, 6}|{3, 4, 5, 6}| | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{1, 2, 3, 4}|{1, 2, 3, 6}|{1, 2, 4, 5}|{1, 3, 4, 5}|{1, 3, 5, 6}|{2, 3, 4, 6}|{3, 4, 5, 6}| | | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 3}|{0, 1, 3, 6}|{0, 2, 3, 6}|{1, 2, 3, 4}|{1, 2, 4, 5}|{1, 3, 4, 6}|{1, 4, 5, 6}|{2, 3, 4, 6}| | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 4}|{0, 1, 3, 4}|{0, 1, 3, 6}|{0, 2, 3, 4}|{0, 2, 3, 6}|{1, 2, 4, 5}|{1, 3, 4, 5}|{1, 3, 5, 6}|{2, 3, 4, 6}|{3, 4, 5, 6}| | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 3}|{0, 1, 3, 6}|{0, 2, 3, 6}|{1, 2, 3, 5}|{1, 3, 5, 6}|{2, 3, 4, 5}|{2, 3, 4, 6}|{3, 4, 5, 6}| | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{1, 2, 3, 5}|{1, 2, 3, 6}|{1, 3, 5, 6}|{2, 3, 4, 5}|{2, 3, 4, 6}|{3, 4, 5, 6}| | | | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{1, 2, 3, 4}|{1, 2, 3, 6}|{1, 2, 4, 5}|{1, 3, 4, 6}|{1, 4, 5, 6}|{2, 3, 4, 6}| | | | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 5}|{0, 1, 3, 5}|{0, 1, 3, 6}|{0, 2, 3, 5}|{0, 2, 3, 6}|{1, 3, 5, 6}|{2, 3, 4, 5}|{2, 3, 4, 6}|{3, 4, 5, 6}| | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 4}|{0, 1, 3, 4}|{0, 1, 3, 6}|{0, 2, 3, 4}|{0, 2, 3, 6}|{1, 2, 4, 5}|{1, 3, 4, 6}|{1, 4, 5, 6}|{2, 3, 4, 6}| | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 5}|{0, 1, 3, 4}|{0, 1, 3, 6}|{0, 1, 4, 5}|{0, 2, 3, 4}|{0, 2, 3, 6}|{0, 2, 4, 5}|{1, 3, 4, 5}|{1, 3, 5, 6}|{2, 3, 4, 6}|{3, 4, 5, 6}| +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 4}|{0, 1, 4, 6}|{0, 2, 3, 4}|{0, 2, 3, 6}|{0, 3, 4, 6}|{1, 2, 4, 5}|{1, 4, 5, 6}|{2, 3, 4, 6}| | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 5}|{0, 1, 3, 4}|{0, 1, 3, 6}|{0, 1, 4, 5}|{0, 2, 3, 4}|{0, 2, 3, 6}|{0, 2, 4, 5}|{1, 3, 4, 6}|{1, 4, 5, 6}|{2, 3, 4, 6}| | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 5}|{0, 1, 3, 5}|{0, 1, 3, 6}|{0, 2, 3, 4}|{0, 2, 3, 6}|{0, 2, 4, 5}|{0, 3, 4, 5}|{1, 3, 5, 6}|{2, 3, 4, 6}|{3, 4, 5, 6}| | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 5}|{0, 1, 5, 6}|{0, 2, 3, 5}|{0, 2, 3, 6}|{0, 3, 5, 6}|{2, 3, 4, 5}|{2, 3, 4, 6}|{3, 4, 5, 6}| | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{1, 2, 4, 5}|{1, 2, 4, 6}|{1, 4, 5, 6}| | | | | | | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{1, 2, 5, 6}|{2, 3, 4, 5}|{2, 3, 4, 6}|{2, 3, 5, 6}|{3, 4, 5, 6}| | | | | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{1, 2, 5, 6}|{2, 4, 5, 6}| | | | | | | | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 4}|{0, 1, 4, 6}|{0, 2, 4, 6}|{1, 2, 4, 5}|{1, 4, 5, 6}| | | | | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 5}|{0, 1, 5, 6}|{0, 2, 5, 6}|{2, 3, 4, 5}|{2, 3, 4, 6}|{2, 3, 5, 6}|{3, 4, 5, 6}| | | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 5}|{0, 1, 5, 6}|{0, 2, 3, 4}|{0, 2, 3, 6}|{0, 2, 4, 5}|{0, 3, 4, 5}|{0, 3, 5, 6}|{2, 3, 4, 6}|{3, 4, 5, 6}| | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 5}|{0, 1, 4, 5}|{0, 1, 4, 6}|{0, 2, 3, 4}|{0, 2, 3, 6}|{0, 2, 4, 5}|{0, 3, 4, 6}|{1, 4, 5, 6}|{2, 3, 4, 6}| | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 5}|{0, 1, 5, 6}|{0, 2, 5, 6}|{2, 4, 5, 6}| | | | | | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 5}|{0, 1, 4, 5}|{0, 1, 4, 6}|{0, 2, 4, 5}|{0, 2, 4, 6}|{1, 4, 5, 6}| | | | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 5}|{0, 1, 5, 6}|{0, 2, 3, 4}|{0, 2, 3, 6}|{0, 2, 4, 5}|{0, 3, 4, 6}|{0, 4, 5, 6}|{2, 3, 4, 6}| | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ |{0, 1, 2, 5}|{0, 1, 5, 6}|{0, 2, 4, 5}|{0, 2, 4, 6}|{0, 4, 5, 6}| | | | | | | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ i5 : Ts/(tri -> topcomIsRegularTriangulation(A, tri)) o5 = {true, true, true, true, true, true, true, true, true, true, true, true, ------------------------------------------------------------------------ true, true, true, true, true, true, true, true, true, true, true, true, ------------------------------------------------------------------------ true} o5 : List i6 : weights = topcomRegularTriangulationWeights(A, Ts#0) 24235 77731 17659 o6 = {-------, -------, ------, 0, 0, 0, 0} 1467081 5029992 838332 o6 : List i7 : needsPackage "Polyhedra" o7 = Polyhedra o7 : Package i8 : Ts#0 o8 = {{0, 1, 2, 3}, {0, 1, 3, 6}, {0, 2, 3, 6}, {1, 2, 3, 4}, {1, 2, 4, 5}, ------------------------------------------------------------------------ {1, 3, 4, 5}, {1, 3, 5, 6}, {2, 3, 4, 6}, {3, 4, 5, 6}} o8 : List i9 : tri0 = regularSubdivision(A, matrix{weights}) o9 = {{0, 1, 2, 3}, {0, 1, 3, 6}, {0, 2, 3, 6}, {1, 2, 3, 4}, {1, 2, 4, 5}, ------------------------------------------------------------------------ {1, 3, 4, 5}, {1, 3, 5, 6}, {2, 3, 4, 6}, {3, 4, 5, 6}} o9 : List i10 : tri0 = tri0//sort/sort o10 = {{0, 1, 2, 3}, {0, 1, 3, 6}, {0, 2, 3, 6}, {1, 2, 3, 4}, {1, 2, 4, 5}, ----------------------------------------------------------------------- {1, 3, 4, 5}, {1, 3, 5, 6}, {2, 3, 4, 6}, {3, 4, 5, 6}} o10 : List i11 : assert(tri0 == Ts#0)