Polyhedra –- Manipulation of Polyhedra in Julia
Polyhedra is a package for polyhedra manipulations in Julia. It provides an unified interface for Polyhedra Manipulation Libraries such as CDDLib.jl and LRSLib.jl.
Polyhedra can either be represented by a set of linear inequalities or by vertices and rays. In the first case, the points of the polyhedron are the points which satisfies all the inequalities and in the second case they are the points that can be expressed as a convex combination of the vertices plus a conic combination of the rays. The manipulations that Polyhedra
can perform include
Projection: Projection of a polyhedron on a lower dimensional space, e.g. Fourier-Motzkin elimination.
Changing the Representation
Vertex enumeration problem: Computing the extremal vertices and rays from an inequality representation
Convex hull problem: Computing a set of linear inequalities describing the polyhedron from a vertex/ray representation
Removal of redundant inequalities or redundant vertices/rays.
Decomposition of 3D/2D polyhedra into a points and triangular faces, enabling easy visualization of 3D/2D polyhedra using DrakeVisualizer or GLVisualize.
Depending on the library, those manipulation can either be in floating point or exact rational arithmetic.
Polyhedra remains under active development, and we welcome your feedback, suggestions, and bug reports.
Installing Polyhedra
If you are familiar with Julia you can get started quickly by using the package manager to install Polyhedra
julia> Pkg.add("Polyhedra")
And a Polyhedra Manipulation Library, e.g.
julia> Pkg.add("CDDLib")