Polyhedral Computation in Julia
JuliaPolyhedra is the Julia organization targeted to polyhedral computation. Its packages share a common interface defined in the Polyhedra.jl package.
List of libraries
The following table provides a list of Polyhedra Manipulation Libraries.
When they have a Julia library implementing the interface of Polyhedra.jl
then the "Julia Package" column shows the name of the package.
By convention, if the name of the package is X
, the name of the libary is X.Library
.
For instance, the CDD library can be created with CDDLib.Library()
.
Some libraries have options such as the solver they use to solve linear programs or
the arithmetic they use.
For instance, to use CDD with exact arithmetic, do CDDLib.Library(:exact)
.
The call CDDLib.Library()
is equivalent to CDDLib.Library(:float)
.
Solver | Julia Package | License | Exact Rational | Floating point |
---|---|---|---|---|
cdd | CDDLib.jl | GPL | X | X |
ConvexHull | ConvexHull.jl | MIT | X | X |
lrs | LRSLib.jl | GPL | X | |
qhull | QHull.jl | X | ||
CHull2d | CHull2d.jl | MIT | X | X |
NewPolka | None | GPL | X | |
Parma Polyhedra Library | None | GPL | X | |
pd | None | GPL | X | |
porta | XPORTA.jl | GPL | X (overflow !) |
Please let me know if you plan to write a new wrapper (or an implementation in pure Julia). Since libraries use different algorithms, no library is better for every problem; here and here are comparisons.