Skip to content

MAGMA code implementing computer search to classify maximal decompositions in 3D polytopes of Minkowski length up to 3, as described in "F_q-zeros of sparse trivariate polynomials and toric 3-fold codes". Joint work with Kyle Meyer and Jenya Soprunova

Notifications You must be signed in to change notification settings

isoprou/minkowski-length

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 

Repository files navigation

minkowski-length

MAGMA code implementing computer search to classify maximal decompositions in 3D polytopes of Minkowski length up to 3, as described in our paper F_q-zeros of sparse trivariate polynomials and toric 3-fold codes (https://arxiv.org/abs/2105.10071). Joint work with Kyle Meyer and Jenya Soprunova.

Given a lattice polytope P, the Minkowski length L(P) is the largest L such that P contains the Minkowski sum of L non-trivial lattice polytopes. Every such sum is called a maximal decomposition in P.

Functions:

minkone(P) Checks if L(P)=1 for a lattice polytope P

minktwo(X) Checks if L(P)<=2 for a lattice polytope P

minkthree(X) Checks if L(P)<=3 for a lattice polytope P

FindSegments(P) Finds all primitive segments I such that L(P+I)=2. Returns a list of lattice points pt such that [0,pt] is such a segment. The list does not contain two vectors that are negatives of each other.

FindSegments2(P,x,y,z) Given P of L(P)=2, finds all segments I=[0,(p,q,r)] with |p|<=x, |q|<=y, and |r|<=z satisfying L(P+I)=3.

AddTriangleHuh(P) Checks if there exists a triangle T such that L(P+T)=2

AddTriangleHuh2(P,x,y,z) Given P of L(P)=2, checks if there exists a triangle T whose segments have absolute value bounded by x,y,z and L(P+T)=3

AddTetraHuh(P) Checks if there exists a lattice tetrahedron Q such that L(P+Q)=2. The tetrahedron may be degenerate.

FindTriangles(P) Returns all triangles T such that L(P+T)=2

FindTetra(P) Returns all lattice tetrahedra Q such that L(P+Q)=2. Some tetrahedra may be degenerate.

GoodPolytope(P) Returns the polytope given by inequalities x>=0 and |ax + by + cz| <= 14 for each facet inner normal (a, b, c) of P

GoodTriangles(S,i,j,k) Given an ordered list S of lattice points checks if \pm S[i], \pm S[j], \pm S[k] can serve as vectors of sides of a triangle. If yes, produces the list of pairs such that the pair together with the origin forms such a triangle; otherwise returns an empty list.

IsTranslate(P,Q) Checks if two lattice polytopes P, Q are translates of each other

AppendNoTranslate(S,P) Given a list of polytopes S and a polytope P, checks if P is a lattice translate of an element of S. If not, includes P in the list

findsegs(X) Given an ordered list of points [p_1,...,p_n] in R^3, returns the vectors p_i-p_j for 1<=i<j<=n.

Zonotope3In(P) Returns a list of all zonotopes in P which are a sum of three distinct primitive segments

Procedures named LemmaX_Y.mgm, PropositionX_Y.mgm, TheoremX_Y.mgm check the finite cases in the proof of the corresponding statement in the paper.

About

MAGMA code implementing computer search to classify maximal decompositions in 3D polytopes of Minkowski length up to 3, as described in "F_q-zeros of sparse trivariate polynomials and toric 3-fold codes". Joint work with Kyle Meyer and Jenya Soprunova

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages