# 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.