/islpy

Python wrapper for isl, an integer set library

Primary LanguagePython

islpy: Polyhedral Analysis from Python

Gitlab Build Status Github Build Status Python Package Index Release Page

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.