Skip to content

PolymakeInterface

Dave Swinarski edited this page May 10, 2016 · 12 revisions

May 6:

Plan: Madeline and Dave will work on PolymakeInterface and PolyhedralObjects from the Wake Forest 2012 workshop. Justin and Roger will add new stuff to LexIdeals.

We emailed Josephine Yu and Diane Maclagan. They plan to work on the gfan interface at the upcoming M2 workshop at Warwick, so we will not work on it at the Utah workshop.

Mike's requests:

  • Hilbert basis (probably already implemented, we will check this)
  • Lattice points (was already implemented, not tested, polymake changed)
  • Triangulations of polytopes (Does polymake just call TOPCOM for this? If so, should we just call TOPCOM directly from M2?)
  • time polymake interface. Maybe this data will convince the polymake team to speed this up for us.
To do:
  • search for untested functions inside PolymakeInterface

Running polymake on a Mac

We updated these instructions from the Wake Forest 2012 workshop. Updated instructions

Saturday, end of day update:

We updated both packages. They are running successfully (install, no example errors, pass all checks) in Macaulay2 1.9 on Macs (Madeline and Dave) and also in Macaulay2 1.7 in Linux (Fordham Research Computing Cluster)

About the property LatticePointsGenerators in PolymakeInterface

This corresponds to the property LATTICE_POINTS_GENERATORS in Polymake: https://polymake.org/release_docs/2.14/polytope.html#Polytope_Rational__LATTICE_POINTS_GENERATORS In which the input is a polyhedron and the output is 3 matrices. One contains a list of points P, the second a list of rays R, and the third is a basis for the lineality space L. Then every lattice point in the polyhedron can be expressed as $p + \lambda R + \mu L$, where entries of $\lambda$ are non-negative integers and entries of $\mu$ are integers. There is a special parser for this type of output called parseLatticePointsGenerators.

We worked on updating PolymakeInterface's "LatticePoints" to polymake's new "LatticePointsGenerators". End of day May 6: it is working but we need to change either the domain or codomain of the empty matrix to match Lineality Space

Sunday, end of day update:

Our major accomplishment was to add a function runPolymake(PolyhedralObject,PolyhedralObject,String):=(P,Q,binaryOperationName) which runs binaryOperationName(P,Q) in polymake. For example, minkowski_sum(P,Q)

We updated the documentation and added a few more tests.

For future reference:

Here is a documentation page that describes how to compute the faces of a given dimension https://polymake.org/doku.php/tutorial/face_lattice_tutorial

End of workshop report

We updated PolyhedralObjects and PolymakeInterface.

There are still some new functions from polymake that we'd like to add to the interface (faces of a specified dimension, triangulation).

There is still room for more tests and documentation.

Right now all the tests are working. There are a few missing documentation tags.

Recommendation: try to add these functions by the end of the month, and then put the new PolymakeInterface.m2 on the M2 Packages website, replacing the really really old polyhedra package there, making sure this doesn't break anything else.