# Copyright (c) 1997-2007 # Ewgenij Gawrilow, Michael Joswig (Technische Universitaet Berlin, Germany) # http://www.math.tu-berlin.de/polymake, mailto:polymake@math.tu-berlin.de # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2, or (at your option) any # later version: http://www.gnu.org/licenses/gpl.txt. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. #---------------------------------------------------------------------------- # $Project: polymake $$Id: construction.rules 7556 2007-01-12 17:36:36Z gawrilow $ ################################################################################### # # This rulefile is currently included only in order to get client group comments. # The definitions of construction functions will be added later. # ################################################################################### # topic: clients/Producing from scratch # With these clients you can create polytopes belonging to various parameterized # families which occur frequently in polytope theory, as well as random # polytopes with different models of randomness. # category: Producing from scratch # Create the 24-cell polytope. # return: RationalPolytope ## user_function c24_cell() { ## my $p=new Apps::polytope::RationalPolytope; ## client("24-cell", $p); ## returnObject($p); ## } # category: Producing from scratch # Create the 600-cell polytope. # Cf. Coxeter, Introduction to Geometry, pp 403-404. # return: RationalPolytope ## user_function c600_cell() { ## my $p=new Apps::polytope::RationalPolytope; ## client("600-cell", $p); ## returnObject($p); ## } # category: Producing from scratch # Create the @c d-dimensional associahedron (or Stasheff polytope). # We use the facet description given in Ziegler's book on polytopes, section 9.2; # note that this description is not full-dimensional. # return: RationalPolytope ## user_function associahedron($) { ## my $p=new Apps::polytope::RationalPolytope; ## my $d=shift; ## if (!is_numeric($d) || $d<=0) { ## croak("usage: associahedron( dimension )"); ## } ## client("associahedron", $p, $d); ## returnObject($p); ## } # topic: clients/Producing a new polyhedron from others # Another important way of constructing polytopes is to modify an # already existing polytope. # # Actually, these clients don't alter the input polytope # (it is forbidden in @c polymake), but create a new polytope object (file). # # Many clients can at your choice either calculate the vertex or facet coordinates, # or constrain themselves on the purely combinatorial description of the # resulting polytope. # topic: clients/Transforming a polyhedron # These clients take a realized polytope and produce a new one by applying a # suitable affine or projective transformation in order to obtain some special # coordinate description but preserve the combinatorial type. # # For example, before you can polarize an arbitrary polyhedron, it # must be transformed to a combinatorially equivalent bounded polytope with the # origin as a relatively interior point. It is achieved with the sequence # @see orthantify - @see p_bound - @see center - @see polarize. # Local Variables: # mode: perl # c-basic-offset:3 # End: