The Parma Polyhedra Library (PPL) is a modern and reasonably complete library providing numerical abstractions especially targeted at applications in the field of analysis and verification of complex systems. The PPL can handle all the convex polyhedra that can be defined as the intersection of a finite number of (open or closed) hyperspaces, each described by an equality or inequality (strict or non-strict) with rational coefficients. The PPL also handles restricted classes of polyhedra that offer interesting complexity/precision tradeoffs. The library also supports finite powersets of (any kind of) polyhedra and linear programming problems solved with an exact-arithmetic version of the simplex algorithm. (More details are available on the PPL’s internal mechanisms.)
The Parma Polyhedra Library is: user friendly (you write x + 2*y + 5*z <= 7 when you mean it); fully dynamic (available virtual memory is the only limitation to the dimension of anything); portable (written in standard C++, with C, Java, Objective CAML and Prolog interfaces, and following all the applicable standards); exception-safe (never leaks resources or leaves invalid object fragments around); efficient (and we hope to make it even more so); thoroughly documented; free software (distributed under the terms of the GNU General Public License).
License: GNU GPL.
Interface: library.
Source language: C++.
Supported languages: C, C++, Java, OCaml, Prolog.
Developers: Roberto Bagnara, Patricia M. Hill, Enea Zaffanella.
Contributors: Abramo Bagnara, Andrea Cimino, Katy Dobson, Elena Mazzi, David Merchat, Matthew Mundell, Andrea Pescetti, Barbara Quartieri, Alessandro Zaccagnini.
Sponsors: University of Parma.
Homepage: http://www.cs.unipr.it/ppl/.
Documentation: http://www.cs.unipr.it/ppl/Documentation/, http://www.cs.unipr.it/ppl/Documentation/devref/, http://www.cs.unipr.it/ppl/Documentation/user/.
Announcements: http://www.cs.unipr.it/mailman/listinfo/ppl-announce.
Development: http://www.cs.unipr.it/mailman/listinfo/ppl-devel.