.. _spkg_ppl: ppl: Parma Polyhedra Library ============================ Description ----------- 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 the termination analysis via the automatic synthesis of linear ranking functions. It is written in C++, but comes with interfaces to C, Java, OCaml, and Prolog. PPL is one of the fastest implementations of polyhedral computations. Benchmarks are included in this paper: https://arxiv.org/abs/cs/0612085 License ------- GPL v3+ Upstream Contact ---------------- - https://www.bugseng.com/ppl Core Development Team - Roberto Bagnara (University of Parma) - Patricia M. Hill (University of Parma) - Enea Zaffanella (University of Parma) Dependencies ------------ - gmp (or mpir) Special Update/Build Instructions --------------------------------- Patches ~~~~~~~ - ptrdiff_t-ppl-1.1.patch: Fixes to compile with gcc 4.9; C++ name lookup issue. - weak.patch: disable use of weak symbols on Cygwin64. Type ---- standard Version Information ------------------- package-version.txt:: 1.2.p1 Equivalent System Packages -------------------------- arch: .. CODE-BLOCK:: bash $ sudo pacman -S ppl-devel conda: .. CODE-BLOCK:: bash $ conda install ppl-devel Debian/Ubuntu: .. CODE-BLOCK:: bash $ sudo apt-get install ppl-devel Fedora/Redhat/CentOS: .. CODE-BLOCK:: bash $ sudo yum install ppl-devel freebsd: .. CODE-BLOCK:: bash $ sudo pkg install ppl-devel gentoo: .. CODE-BLOCK:: bash $ sudo emerge ppl-devel homebrew: .. CODE-BLOCK:: bash $ brew install ppl-devel nix: .. CODE-BLOCK:: bash $ nix-env --install ppl-devel opensuse: .. CODE-BLOCK:: bash $ sudo zypper install ppl-devel void: .. CODE-BLOCK:: bash $ sudo xbps-install ppl-devel See https://repology.org/project/ppl-devel/versions If the system package is installed, ./configure will check whether it can be used.