PolyLib - A library of polyhedral functions
What's new:
May 22, 2025: Polylib latest release: 5.22.8.
2021: Polylib moved to MIT license.
Feb 24, 2010: Previous release: 5.22.5.
Mar 22, 2005: VisualPolylib.0.9e
[Getting the PolyLib]
[Documentation and Information]
[Links and Publications]
[VisualPolylib]
The Polyhedral Library (PolyLib for short) operates on objects made up of unions of rational polyhedra of any dimension. It was first developed by Doran Wilde at IRISA, in Rennes, France, in connection with the ALPHA project.
This first version (1.1) manipulates non parameterized unions of polyhedra through the following operations: intersection, difference, union, convex hull, simplify, image and preimage, plus some input and output functions.
The polyhedra are computed in their dual implicit and Minkowski representations, in homogeneous spaces.
Version 2 of the PolyLib included parameterized vertices computation.
PolyLib3.14 includes Ehrhart polynomials computation by interpolation, which permits to count the number of integer points contained in a parameterized polyhedron.
PolyLib4 included the GNU MP library (as a compilation option) and 64 bits computations, in order to avoid integer overflows.
Polylib5 is a merge of Strasbourg, Rennes and BYU Polylib.
Getting the PolyLib
Latest version on GIT
Packages
- Debian packages are available in standard linux distributions.
Serge Guelton made these available, thanks to him!
Source
-
tar.gz images of the PolyLib:
polylib_src/
What's new ?
- in 5.22.8 (2025): minor fixes and updates during the past 10 years, autotools update, MIT licence.
- in 5.22.5 (2010): bsd-make compatibility, moved to GPLv3.
- in 5.22.4: cleaned installation, many minor corrections and updates.
- in 5.22.3: memory leaks (Sven).
- in 5.22.2: various bug corrections and updates (RemoveNColumns for Paul).
- in 5.22.1: Ehrhart polynomial approximations (B. Meister), ranking function, memory leaks+bug corrections (S. Verdoolaege).
- in 5.20.0: Installation procedure (full GNU auto-tools), many changes in sources.
- in 5.11.1: remove memory leakages from ehrhart, polyparam, and Disjoint_Union.
- in 5.11: Reduced complexity of Ehrhart polynomials computation by calculating one lcm per parameter.
Function Domain_Enumerate, enumerating a union of polyhedra by computing a disjoint union first, and computing the sum of the resulting per-domain polynomials.
Various changes in configure script and Makefiles.
PolyLib Information
The documentation:
See the doc/ subdirectory in the standard distribution.
You may contact
Vincent Loechner
for any information, bug report, compilation problems, ...
Examples:
Many people (mostly Vincent) have written a lot of small tools using the PolyLib, usually
based on terminal input/output. I decided to give free access to these tools as tutorial.
However, be warned that most of them are lightly commented (!)
polylib_tools.tar.gz (317kb) (updated: december 11th 2000).
Links
Doran Wilde's
PolyLib Page.
Ehrhart Polynomials Page, by Philippe Clauss,
and related publications.
Parma Polyhedra Library
VisualPolylib
VisualPolylib is no longer maintained - use (if you can) at your own risks!
VisualPolylib is an interface that permits to use the PolyLib interactively.
In VisualPolylib, you can:
- call the polylib functions as in other computer algebra environments
- visualize union of parameterized domains in a GTK environment
Requirement:
You need to have the following packages installed before building VisualPolylib:
- the GNU development suite (gcc, make, etc.)
- Polylib (version 5.08+)
(available above)
- GTK+ 2.0, which requires ATK, PANGO and GLIB
(available at http://www.gtk.org)
Getting VisualPolylib:
1. Get the latest source: visualpolylib.0.9e.tar.gz
2. Unpack the archive (tar xzf visualpolylib.0.9e.tar.gz)
3. cd visualpolylib.0.9e
4. read the README file for more instructions.
|
Snapshots (click to enlarge):

|
Vincent Loechner,
loechner at unistra.fr.