GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - inducer/islpy: Python wrapper for isl, an integer set library

BranchesTags
Open more actions menu

Latest commit

 

History

929 Commits
929 Commits

Folders and files

NameName
Last commit message
Last commit date
.basedpyright
.basedpyright
 
 
.github
.github
 
 
doc
doc
 
 
examples
examples
 
 
isl @ 6c2b19a
isl @ 6c2b19a
 
 
isl-supplementary
isl-supplementary
 
 
islpy
islpy
 
 
src/wrapper
src/wrapper
 
 
stubgen
stubgen
 
 
test
test
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
.gitlab-ci.yml
.gitlab-ci.yml
 
 
.gitmodules
.gitmodules
 
 
CITATION.cff
CITATION.cff
 
 
CMakeLists.txt
CMakeLists.txt
 
 
README.rst
README.rst
 
 
build-with-barvinok.sh
build-with-barvinok.sh
 
 
gen_wrap.py
gen_wrap.py
 
 
pyproject.toml
pyproject.toml
 
 

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.

About

Python wrapper for isl, an integer set library

pypi.org/project/islpy

Topics

code-generationislloop-optimizationpolyhedral-modelpythonwrapper

Resources

Readme
Activity

Stars

87 stars

Watchers

6 watching

Forks

23 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.