Release date: December 23, 2011.
Release 2.11 is now available on the Downloads page. Here are the most important new features:
SymmetricPolytope
SymPol
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).
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;
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;