PolyLib - A library of polyhedral functions
Feb 24, 2010: Polylib latest release: 5.22.5.
Mar 22, 2005: VisualPolylib.0.9e
[Getting the PolyLib]
[Documentation and Information]
[Links and Publications]
The Polyhedral Library (PolyLib for short) operates on objects made up of unions of 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, 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
C source of the PolyLib. You are very welcome sending me bug reports.
What's new ?
- in 5.22.5: 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.
- GIT source repository: http://repo.or.cz/w/polylib.git.
See the doc/ subdirectory in the standard distribution.
The PolyLib mailing-list:
To join the list, send an email to
containing the following message:
SUB PolyLib firstname lastname organization
You will then be asked to confirm your subscription by replying
to the returned message.
You may also contact
for any information, bug report, compilation problems, ...
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).
Ehrhart Polynomials Page, by Philippe Clauss,
and related publications.
Parma Polyhedra Library
VisualPolylib is an interface that permits to use the PolyLib interactively.
Using VisualPolylib, you can:
- call the polylib functions as in other computer algebra environments
- visualize union of parameterized domains in a GTK environment
You need to have the following packages installed before building VisualPolylib:
- the GNU development suite (gcc, make, etc.)
- Polylib version >= 5.08
- GTK+ 2.0, which requires ATK, PANGO and GLIB
(available at http://www.gtk.org)
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):
(old) VisuDomain toolkit:
VisuDomain is now included in VisualPolylib.
It is no longer maintained as a seperate tool.