Polyhedral Computation Interface


Documentation PackageEvaluator Build Status
Build Status Build Status
Coveralls branch Codecov branch

Polyhedra provides an unified interface for Polyhedral Computation Libraries such as CDDLib.jl. These manipulation notably include the transformation from (resp. to) an inequality representation of a polyhedron to (resp. from) its generator representation (convex hull of points + conic hull of rays) and projection/elimination of a variable with e.g. Fourier-Motzkin.

Documentation can be found here.

It defines the abstract type Polyhedron and splits the operations on this type in two categories:

  • Mandatory: Operations that needs to be implemented by the Polyhedral Computation Libraries: e.g. Transformation between the two representations described above and variable elimination.
  • Optional: Operations that can be implemented using the other operations and hence have a default implementation: e.g. creation of the polyhedron from the feasible set of a JuMP model, linear transformation, intersection, Minkowski addition, decomposition into points and faces for e.g. 3D visualization using DrakeVisualizer or GLVisualize.jl

Here is a list of the Polyhedral Computation Libraries implementing the interface of Polyhedra.jl

Please let me know if you plan to write a new wrapper (or an implementation in pure Julia). Since libraries (cdd, lrs, pd, porta, qhull, …) use different algorithms, there is no better library for every problem; here is a comparison.