Disclaimer
This is free advice. I only discuss the packages that I have some experience with, and my needs (mathematical precision) may be different than yours (high performance?).
Floating point?
I am mainly interested in vertex and facet enumeration problems where it is important to compute precisely the correct answer. As such, I don't have much use for most programs working (only) in floating point. If your needs are different, then you should investigate Brad Barber's qhull
Special Cases.
If your input is non-degenerate (i.e. a simple polytope for vertex enumeration), then I recommend you try David Avis' lrs.
If your output is non-degenerate (i.e. a simple polytope for facet enumeration) then I recommend you try Ambros Marzetta's pd.
pd
has some restrictions on its input that the other programs discussed here do not.
Otherwise. If you don't know anything about your input, you can
try lrs and pd
. Who knows, you might be lucky. You are more
likely to be get an answer from lrs, because it is quite robust,
and needs not very much memory. In case of degenerate input/output,
the best bet to be one of Fukuda's
cdd or
the built in double description method of
polymake. The polymake
code is much newer, but is built into a very nice framework for
experimenting with polytopes. Another double description
implentation that looks promising is
skeleton by Nikolai
Zolotykh.