Documentation |
PackageEvaluator |
Build Status |
---|---|---|

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`

- CDDLib.jl: CDD wrapper.
- ConvexHull.jl: Pure Julia implementation of the double description algorithm.
- LRSLib.jl: LRS wrapper.
- QHull.jl: qhull wrapper.

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.

02/25/2016

about 2 months ago

197 commits