islpy: Polyhedral Analysis from Python
======================================
.. image:: https://gitlab.tiker.net/inducer/islpy/badges/main/pipeline.svg
:alt: Gitlab Build Status
:target: https://gitlab.tiker.net/inducer/islpy/commits/main
.. image:: https://github.com/inducer/islpy/workflows/CI/badge.svg?branch=main&event=push
:alt: Github Build Status
:target: https://github.com/inducer/islpy/actions?query=branch%3Amain+workflow%3ACI+event%3Apush
.. image:: https://badge.fury.io/py/islpy.png
:alt: Python Package Index Release Page
:target: https://pypi.org/project/islpy/
islpy is a Python wrapper around Sven Verdoolaege's `isl
`_, a library for manipulating sets and
relations of integer points bounded by linear constraints.
Supported operations on sets include
* intersection, union, set difference,
* emptiness check,
* convex hull,
* (integer) affine hull,
* integer projection,
* computing the lexicographic minimum using parametric integer programming,
* coalescing, and
* parametric vertex enumeration.
It also includes an ILP solver based on generalized basis reduction, transitive
closures on maps (which may encode infinite graphs), dependence analysis and
bounds on piecewise step-polynomials.
Islpy comes with comprehensive `documentation `_.
*Requirements:* islpy needs a C++ compiler to build. GMP, which used to be
a dependency, is no longer required.