sagemath_latte_4ti2: Lattice points in polyhedra with LattE integrale and 4ti2

This pip-installable source distribution passagemath-latte-4ti2 provides an interface to LattE integrale (for the problems of counting lattice points in and integration over convex polytopes) and 4ti2 (for algebraic, geometric and combinatorial problems on linear spaces).

What is included

Examples

Using LattE integrale and 4ti2 programs on the command line:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-latte-4ti2" sage -sh -c 'ppi 5'
...
### This makes 47 PPI up to sign
### Writing data file ppi5.gra and matrix file ppi5.mat done.

Finding the installation location of a LattE integrale or 4ti2 program in Python:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-latte-4ti2[test]" ipython

In [1]: from sage.features.latte import Latte_count

In [2]: Latte_count().absolute_filename()
Out[2]: '/Users/mkoeppe/.local/pipx/.cache/2dc147a5e4863b4/lib/python3.11/site-packages/sage_wheels/bin/count'

In [3]: from sage.features.four_ti_2 import FourTi2Executable

In [4]: FourTi2Executable('ppi').absolute_filename()
Out[2]: '/Users/mkoeppe/.local/pipx/.cache/2dc147a5e4863b4/lib/python3.11/site-packages/sage_wheels/bin/ppi'

Using the low-level Python interfaces:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-latte-4ti2[test]" ipython

In [1]: from sage.interfaces.latte import count

In [2]: cdd_Hrep = 'H-representation\nbegin\n 6 4 rational\n 2 -1 0 0\n 2 0 -1 0\n 2 0 0 -1\n 2 1 0 0\n 2 0 0 1\n 2 0 1 0\nend\n'

In [3]: count(cdd_Hrep, cdd=True)
Out[3]: 125

Use with sage.geometry.polyhedron:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-latte-4ti2[test]" ipython

In [1]: from sage.all__sagemath_polyhedra import *

In [2]: P = Polyhedron(vertices=[[1,0,0], [0,0,1], [-1,1,1], [-1,2,0]])

In [3]: P.volume(measure='induced_lattice', engine='latte')
Out[3]: 3

Type

optional

Dependencies

Version Information

package-version.txt:

10.6.3

version_requirements.txt:

passagemath-latte-4ti2 ~= 10.6.3.0

Equivalent System Packages

(none known)