Introduction to polymake


For installation instructions, see the HowTo pages.

Getting started

Starting up polymake on the command line gives:

Welcome to polymake version 3.1
Copyright (c) 1997-2017
Ewgenij Gawrilow, Michael Joswig (TU Berlin)

This is free software licensed under GPL; see the source for copying conditions.

Press F1 or enter 'help;' for basic instructions.

Application polytope currently uses following third-party software packages:
cdd, jreality, libnormaliz, lrs, nauty, permlib, povray, ppl, sketch, sympol, threejs, tikz, tosimplex
For more details:  show_credits;

You will face an input prompt which indicates the start up application (usually polytope >). After the prompt you can enter (an enriched form of) perl code. See this introduction and the advanced polymake/perl tutorial for more info.


polymakes namespace is subdivided into so-called “applications”. They group functions and objects that belong together mathematically (see this article for more). For example, the default application polytope deals with polyhedra, while topaz provides tools for topology and tropical for tropical geometry.

To switch to another application, do this:

application 'topaz';

There are introductory tutorials for all applications. Also check out the documentation.

Getting help

Apart from the tutorials and HowTos, you can often find out what to do to reach your goal by using the built-in help features of the polymake shell.

The polymake help system provides extensive usage information. In the shell, type

polytope > help;

to get started. Invoking

polytope > help 'help';

will explain thy syntax of the help system.

If you type part of an expresison in the shell, you can hit TAB to display possible ways of completing it. For example, to see what methods you can invoke on the graph of the 3-cube, enter the following and hit TAB:

 polytope > cube(3)->GRAPH->                              # hit TAB!
add                               disable_rules                     MAX_CLIQUES                       set_as_default
ADJACENCY                         dont_save                         name                              set_as_default_now
apply_rule                        EDGE_DIRECTIONS                   N_CONNECTED_COMPONENTS            SIGNATURE
attach                            EDGES                             N_EDGES                           SIGNED_INCIDENCE_MATRIX
AVERAGE_DEGREE                    EIGENVALUES_LAPLACIAN             N_NODES                           SQUARED_EDGE_LENGTHS
BICONNECTED_COMPONENTS            get_attachment                    NODE_DEGREES                      STRONG_COMPONENTS
BIPARTITE                         get_schedule                      NODE_IN_DEGREES                   STRONGLY_CONNECTED
CHARACTERISTIC_POLYNOMIAL         give                              NODE_LABELS                       take
CONNECTED_COMPONENTS              LATTICE_EDGE_LENGTHS              properties                        type
CONNECTIVITY                      list_attachments                  provide                           VISUAL
DEGREE_SEQUENCE                   list_names                        remove                            WEAKLY_CONNECTED
description                       list_properties                   remove_attachment                 WEAKLY_CONNECTED_COMPONENTS

You can conveniently access the polymake documentation in the shell. Place the cursor above a thing you want to know about and hit F1. Hitting it once will display brief info on types or function signatures. Hitting it a second time will show you the complete documentation, sometimes even small usage examples:

 polytope > simplex(                                      # hit F1 twice!
functions/Producing a polytope from scratch/simplex:
simplex(d; scale, Options) -> Polytope

 Produce the standard d-simplex.
 Combinatorially equivalent to a regular polytope corresponding to the Coxeter group of type A<sub>d-1</sub>.
 Optionally, the simplex can be scaled by the parameter scale.

  Int d the dimension
  Scalar scale default value: 1

  group => Bool 

Returns Polytope 


*) To print the vertices (in homogeneous coordinates) of the standard
   2-simplex, i.e. a right-angled isoceles triangle, type this:
    > print simplex(2)->VERTICES;
    (3) (0 1)
    1 1 0
    1 0 1
   The first row vector is sparse and encodes the origin.
*) To create a 3-simplex and also calculate its symmetry group, type this:
    > simplex(3, group=>1);

If you have any questions, feel free to ask in the forum.

Back to Tutorial Overview

tutorial/intro_tutorial.txt · Last modified: 2017/07/02 23:46 by oroehrig
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki