Table of Contents

New Features in Release 2.11

Release date: December 23, 2011.

Release 2.11 is now available on the Downloads page. Here are the most important new features:

Improved shared library handling

The support for loading the shared library on demand (via dlopen) is now improved. It is no longer necessary to specify RTLD_GLOBAL, the correct symbol visibility of libpolymake and libperl is now set automatically during the initialization of polymake::Main (see also the discussion in the forum).

New object class: SymmetricPolytope

Release 2.11 provides a new “big object” class SymmetricPolytope. These objects are defined via their GENERATING_GROUP and the input either of GEN_POINTS (and GEN_INPUT_LINEALITY), or of GEN_INEQUALITIES (and GEN_EQUATIONS). The GENERATING_GROUP property takes a permutation group object group::GroupOfPolytope acting on the coordinates of the points, or the inequalities, respectively. Having defined a SymmetricPolytope one can ask for the orbits of its vertices and its facets. They are stored as a property of the GENERATING_GROUP. Here is a brief example:

$g=new group::GroupOfPolytope(GENERATORS=>[[1,2,0],[1,0,2]],DOMAIN=>$polytope::domain_OnCoords);
$p=new SymmetricPolytope<Rational>(GEN_POINTS=>[[1,1,2,0],[1,1,0,0],[1,0,0,0]],GENERATING_GROUP=>$g);
print $p->VERTICES;
$p->VISUAL;
print $p->GENERATING_GROUP->VERTICES_IN_ORBITS;
print $p->GENERATING_GROUP->FACETS_IN_ORBITS;

Computing linear symmetries

Thanks to the new interface to SymPol, a C++ tool to work with symmetric polyhedra written by Thomas Rehn and Achill Schürmann, polymake is now able to compute linear symmetries of polyhedra.

$p=new Polytope<Rational>(POINTS=>cube(3)->VERTICES);
linear_symmetries($p,1);

The symmetry group is stored in the property GROUP of the polytope $p. The second parameter means that we are interested either in the permutation group acting on the facets (=0), or on the vertices (=1), as in our example. Asking for the generators of the group acting on the vertices we obtain the following output:

polytope > print $p->GROUP->GENERATORS;
0 4 2 6 1 5 3 7
0 1 4 5 2 3 6 7
7 6 5 4 3 2 1 0
2 6 0 4 3 7 1 5

Another new feature is the computation of stabilizers of sets and vectors. For example, we can compute the subgroup of the linear symmetries of $p leaving the set {1,2} invariant:

$s12=new Set<Int>(1,2);
$stab12=group::stabilizer_of_set($p->GROUP,$s12);
print $stab1->GENERATORS;