The polymake system contains plenty of user-executable programs and scripts. While each of them has its own command line syntax, described in detail in the corresponding section, they obey simple common design guidelines:

From the implementation point of view the programs can be divided in three main categories.

polymake perl script

This is the core component of the system, which you will be working with most of the time. Its main purpose is to obtain properties of a polyhedron and print them on the standard output. In the easiest case when required properties are already contained in the file it just needs to extract them. Otherwise it consults the collection of rules and calls client programs which calculate the missing properties. All new data obtained, as well as possible intermediate results, are stored in the file, thus providing a quick response for future requests.

Client programs

These are mainly short C++ programs using special interface for the data exchange. They are called clients due to their role in the communication process: they never access the data files directly, but ask polymake to provide the properties they need, as the user does from the command line.

There are various kinds of client programs. Some of them construct new polyhedra from scratch or by transforming another ones. Other clients compute some properties of a given polyhedron; you will hardly ever need to use them directly, as they are automatically called by polymake via the rules.

Accompanying utilities

It's a slack small collection of stand-alone scripts performing data conversion between polymake and other data formats. The scripts have been developed primarily for own demand, so they shouldn't be expected to deal with all world-known LP or geometric data formats. We just don't see any reason to hide them from you.

Please don't hesitate to contact us if you need assistance in converting some data format you are familiar with to polymake.