http://bugseng.com/products/ppl/ =============================== The Parma Polyhedra Library (PPL) provides numerical abstractions especially targeted at applications in the field of analysis and verification of complex systems. These abstractions include convex polyhedra, defined as the intersection of a finite number of (open or closed) halfspaces, each described by a linear inequality (strict or non-strict) with rational coefficients; some special classes of polyhedra shapes that offer interesting complexity/precision tradeoffs; and grids which represent regularly spaced points that satisfy a set of linear congruence relations. The library also supports finite powersets and products of (any kind of) polyhedra and grids, a mixed integer linear programming problem solver using an exact-arithmetic version of the simplex algorithm, a parametric integer programming solver, and primitives for termination analysis via the automatic synthesis of linear ranking functions. 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 version 3 or any later version).