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¶
Raw access to all executables from Python using sage.features.latte and sage.features.four_ti_2
The binary wheels published on PyPI include a prebuilt copy of LattE integrale and 4ti2.
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¶
$(PYTHON)
$(PYTHON_TOOLCHAIN)
4ti2: Algebraic, geometric and combinatorial problems on linear spaces
cython: C-Extensions for Python, an optimizing static compiler
latte_int: Count lattice points, compute volumes, and integrate over convex polytopes
mpc: Arithmetic of complex numbers with arbitrarily high precision and correct rounding
mpfr: Multiple-precision floating-point computations with correct rounding
sagemath_categories: Sage categories, basic rings, polynomials, functions
sagemath_objects: Sage objects, elements, parents, categories, coercion, metaclasses
Version Information¶
package-version.txt:
10.6.29
version_requirements.txt:
passagemath-latte-4ti2 ~= 10.6.29.0
Installation commands¶
$ pip install passagemath-latte-4ti2~=10.6.29.0
$ sage -i sagemath_latte_4ti2
However, these system packages will not be used for building Sage
because spkg-configure.m4
has not been written for this package;
see upstream Issue #27330 for more information.