Original author(s) | Ewgenij Gawrilow and Michael Joswig |
---|---|
Stable release |
3.0 / January 8, 2016
|
Written in | C++, Perl |
Operating system | Linux, Mac |
Available in | English |
License | GNU General Public License |
Website | polymake |
Polymake is software for the algorithmic treatment of convex polyhedra.
Albeit primarily a tool to study the combinatorics and the geometry of convex polytopes and polyhedra, it is by now also capable of dealing with simplicial complexes, matroids, polyhedral fans, graphs, tropical objects, toric varieties and other objects.
Polymake has been cited in over 100 recent articles indexed by Zentralblatt MATH as can be seen from its entry in the swMATH database.
Polymake was originally designed as a research tool for studying aspects of polytopes. As such, polymake uses many third party software packages for specialized computations, thereby providing a common interface and bridge between different tools. A user can easily (and unknowingly) switch between using different software packages in the process of computing properties of a polytope.
Polymake internally uses a server-client model where the server holds information about each object (e.g., a polytope) and the clients sends requests to compute properties. The server has the job of determining how to complete each request from information already known about each object using a rule based system. For example, there are many rules on how to compute the facets of a polytope. Facets can be computed from a vertex description of the polytope, and from a (possibly redundant) inequality description. Polymake builds a dependency graph outlining the steps to process each request and selects the best path via a Dijkstra type algorithm.
Polymake can be used within a perl script. Moreover, users can extend polymake and define new objects, properties, rules for computing properties, and algorithms.
Polymake divides its collection of functions and objects into 10 different groups called applications. They behave like C++ namespaces. The polytope application was the first one developed and it is the largest.
This application contains many "helper" functions used in other applications.
The Fan application contains functions for polyhedral complexes (which generalize simplicial complexes), planar drawings of 3-polytopes, polyhedral fans, and subdivisions of points or vectors.