Next revision | Previous revision |
news:release_2_11 [2011/12/21 11:48] – created joswig | news:release_2_11 [2019/07/04 09:21] (current) – mradons |
---|
====== New Features in Release 2.11 ====== | ====== New Features in Release 2.11 ====== |
| |
Release date: December xx, 2011. | Release date: December 23, 2011. |
| |
| Release 2.11 is now available on the [[download:start|Downloads]] page. Here are the most important new features: |
| |
| * improved shared library handling |
| * new big object ''SymmetricPolytope'' |
| * computation of linear symmetries via ''SymPol'' |
| * solves a number of issues arising from empty polytopes |
| * multitude of minor editions and bugfixes |
| |
| ==== 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 [[http://forum.polymake.org/viewtopic.php?f=8&t=182|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: |
| |
| <code> |
| $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; |
| </code> |
| |
| ==== Computing linear symmetries ==== |
| |
| Thanks to the new interface to ''SymPol'', a ''C++'' tool to work with symmetric polyhedra written by [[http://www.math.uni-rostock.de/~rehn/index.html|Thomas Rehn]] and [[https://www.mathematik.uni-rostock.de/struktur/professuren-apl-prof/geometrie/people/achill/|Achill Schürmann]], ''polymake'' is now able to compute linear symmetries of polyhedra. |
| <code> |
| $p=new Polytope<Rational>(POINTS=>cube(3)->VERTICES); |
| linear_symmetries($p,1); |
| </code> |
| 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: |
| <code> |
| 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 |
| </code> |
| 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: |
| <code> |
| $s12=new Set<Int>(1,2); |
| $stab12=group::stabilizer_of_set($p->GROUP,$s12); |
| print $stab1->GENERATORS; |
| </code> |