By far not every feature of polymake system is developed by the polymake project team itself. Instead, we purposely rely on the expertise of various research groups in the community. It is one of the main goals of our project to increase the interoperability of all the fascinating publicly available geometric software. And last but not least, having quite constrained man-power and time resources, it is obviously much easier to interface a well-tested, ready-to-use software package than to implement everything from scratch.

The external software used in polymake can be divided in three categories:

1. Core library
   GNU Multiprecision Library (GMP) (version 4.1.4)
   A well-known implementation of integer, rational, and floating-poing arithmetic (and beyond) with unlimited precision. It became a standard arithmetic engine in many geometric and algebraic software packages in the last years.
   `polymake` makes massive use of the GMP integers and rationals via own C++ wrapper classes.
   You can't build nor use polymake without having installed GMP on your system.
2. Essential Libraries bundled with polymake
   cddlib (version 0.94b)
   by Komei Fukuda, Institute for Operations Research, ETH Zürich.
   Contains the double description method (dual Fourier-Motzkin) for convex hull and vertex enumeration, as well as a dual simplex LP solver, both implemented for floating-point and unlimited precision rational numbers.
   lrslib (version 4.2b)
   by David Avis, McGill University.
   Contains the reverse search method of Avis and Fukuda, and a primal simplex LP solver, both using unlimited precision arithmetic.
   nauty (version 2.2)
   by Brendan McKay, Australian National University.
   Computes automorhism groups of graphs. `polymake` uses it for checking combinatorial equivalence and congruence of polytopes as well as isomorphy of graphs.
   Due to license agreements and/or kind allowance of the authors, these libraries are packed together with the polymake distribution. You don't have to download and install them separately. We are keeping track of their further development and always include the most recent versions avaliable at the moment of making the current polymake release.
3. Useful extensions
   TOPCOM (version 0.14.0)
   by Jörg Rambau.
   Explores triangulations of points configurations.
   vinci (version 1.0.5)
   by Benno Büeler, Andreas Enge, and Komei Fukuda.
   Computes the volume of polytopes using floating point arithmetic.
   LattE
   by Jesus De Loera and his co-authors.
   LattE is a software dedicated to the problems of counting and detecting lattice points inside convex polytopes, and the solution of integer programs. LattE contains the first ever implementation of Barvinok's algorithm. LattE stands for "Lattice point Enumeration".
   barvinok
   by Sven Verdoolaege.
   barvinok is a library for counting the number of integer points in parametrized and non-parametrized polytopes. For parametrized polytopes an explicit function in the shape of a piece-wise step-polynomial is constructed. This is a generalization of both Ehrhart quasi-polynomials and vector partition functions. Alternatively, a generalized Ehrhart series can be constructed as well.
   It comes with a polymake client in the projects polymake subdirectory.
   bastat
   by Loic Pottier.
   Computes the interior integral lattice points.
   porta (version 1.3.2)
   by Thomas Christoph and Andreas Loebel, ZIB / Uni Heidelberg.
   An implementation of Fourier-Motzkin elimination. This program seems not to be further developed nor maintained any more; moreover, the limited precision arithmetic used in it makes it fail on complex problems. We offer an interface mostly for historical reasons.
   convex (version 1.1.1)
   by Matthias Franz.
   Convex is a Maple package for convex geometry. It can deal with polytopes and, more generally, with all kinds of polyhedra of (in principle) arbitrary dimension. The only restriction is that all coordinates must be rational. polymake interface.
   HAP (version 1.3)
   by Graham Ellis.
   HAP is a homological algebra library for use with the GAP computer algebra system, and is still under development. Its initial focus is on computations related to the cohomology of groups. Both finite and infinite groups are handled, with main emphasis on integer coefficients. For polyhedral computations, HAP interfaces to polymake.
   azove (version 1.1)
   by Markus Behle.
   azove is a tool designed for counting (without explicit enumeration) and enumeration of 0/1 vertices. Given a polytope by a linear relaxation or facet description P = {x | Ax <= b}, all 0/1 points lying in P can be counted or enumerated. This is done by intersecting the polytope P with the unit-hypercube [0,1]d. The integral vertices (no fractional ones) of this intersection will be enumerated. If P is a 0/1 polytope, azove solves the vertex enumeration problem.

   Visualization

   JavaView (version 3.95)
   by Konrad Polthier, Samy Khadem, Eike Preuss, Ulrich Reitebuch,
   Sonderforschungsbereich 288, TU Berlin.
   Visualizes 3D- and 4D-polytopes (and much more).
   SplitsTree (version 4)
   by David Bryant and Daniel Huson, Universität Tübingen.
   Visualization of phylogenetic trees.
   geomview (version 1.8.1),
   Geometry Center, University of Minnesota.
   Visualizes 3D- and 4D-polytopes.
   POV-Ray
   3D- and 4D-visualization by high-end ray-tracing.
   graphviz
   Visualizes graphs and face lattices.

   Topology

   homology
   by Frank Heckenbach, Uni Erlangen-Nürnberg
   An efficient program computing homology groups of simplicial complexes.
   GAP
   The famous group-theoretical software package. Can be used to analyze the fundamental group of a simplicial complex.
   You should download and install these packages on your own, provided you accept the license agreements. Don't merge them into the polymake directory tree, as they might get overwritten by the next polymake upgrade.
   For your convenience, the interface components for external software are kept in separate rule files. The auto-configuration routines defined there try to find the installed software (usually by examining your PATH variable). In the case of failure, the rule file gets disabled until you install the lacking software package and repeat the auto-configuration ( polymake --reconfigure or --reconfigure-rules ).
   At any rate, we strongly recommend you to install some visualization software (preferably JavaView), as polymake were much more boring without all these colorful pictures.

Note: Version numbers given in the descriptions are not binding. These are the latest versions that we are aware of and proven to work with `polymake`. You are free to use other versions as long as the backward compatibility (API and/or interchange file format, whatever appropriate) is preserved.