Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

inducer/islpy

Open more actions menu

Repository files navigation

islpy: Polyhedral Analysis from Python

Gitlab Build Status Github Build Status Python Package Index Release Page Zenodo DOI for latest release

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. It can optionally make use of GMP for support of large integers.

One important thing to know about islpy is that it exposes every function in isl that is visible in the headers, not just what isl's authors consider its documented, public API (marked by __isl_export). These (technically) undocumented functions are marked in the islpy documentation. Many of them are useful and essential for certain operations, but isl's API stability guarantees do not apply to them. Use them at your own risk.

Islpy can optionally be built with support for barvinok, a library for counting the number of integer points in parametric and non-parametric polytopes. Notably, unlike isl, barvinok is GPL-licensed, so doing so changes islpy's effective license as well. In addition to islpy's regular PyPI source and binary wheel downloads, Cambridge Yang has made available a package with wheels that include Barvinok.

Morty Proxy This is a proxified and sanitized view of the page, visit original site.