sagemath_lrslib: Reverse search for vertex enumeration and convex hulls with lrslib¶
This pip-installable distribution passagemath-lrslib
provides an interface
to lrslib by David Avis,
an implementation of the reverse search algorithm for vertex enumeration
and convex hull problems.
What is included¶
Binary wheels on PyPI contain prebuilt copies of lrslib executables.
Examples¶
Using lrslib programs on the command line:
$ pipx run --pip-args="--prefer-binary" --spec "passagemath-lrslib" sage -sh -c lrs
*lrs:lrslib v.7.1 2021.6.2(64bit,lrslong.h,hybrid arithmetic)
Finding the installation location of an lrslib program:
$ pipx run --pip-args="--prefer-binary" --spec "passagemath-lrslib[test]" ipython
In [1]: from sage.features.lrs import LrsNash
In [2]: LrsNash().absolute_filename()
Out[2]: '/Users/mkoeppe/.local/pipx/.cache/db3f5a0e2996f81/lib/python3.11/site-packages/sage_wheels/bin/lrsnash'
Use with sage.game_theory:
$ pipx run --pip-args="--prefer-binary" --spec "passagemath-lrslib[test]" ipython
In [1]: from sage.all__sagemath_lrslib import *
In [2]: A = matrix([[1, -1], [-1, 1]]); B = matrix([[-1, 1], [1, -1]])
In [3]: matching_pennies = NormalFormGame([A, B])
In [4]: matching_pennies.obtain_nash(algorithm='lrs')
Out[4]: [[(1/2, 1/2), (1/2, 1/2)]]
Type¶
optional
Dependencies¶
$(PYTHON)
$(PYTHON_TOOLCHAIN)
cython: C-Extensions for Python, an optimizing static compiler
lrslib: Reverse search algorithm for vertex enumeration and convex hull problems
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-lrslib ~= 10.6.29.0
Installation commands¶
$ pip install passagemath-lrslib~=10.6.29.0
$ sage -i sagemath_lrslib
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.