Home Online Manual
Back: secondaryPolytope
Forward: cycleLength
Up: polymake_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.13.2.8 secondaryFan

Procedure from library polymake.lib (see polymake_lib).

secondaryFan(polygon[,#]); list polygon, list #

- polygon is a list of integer vectors of the same size representing the affine coordinates of lattice points
- if the triangulations of the corresponding polygon have already been computed with the procedure triangulations then these can be given as a second (optional) argument in order to avoid doing this computation again

the procedure considers the marked polytope given as the convex hull of the lattice points and with these lattice points as markings; it then computes the lattice points of the secondary polytope given by this marked polytope which correspond to the triangulations computed by the procedure triangulations

list, the ith entry of L[1] contains information about the ith cone in the secondary fan of the polygon, i.e. the cone dual to the ith vertex of the secondary polytope
L[1][i][1] = integer matrix representing the inequalities which describe the cone dual to the ith vertex
L[1][i][2] = a list which contains the inequalities represented by L[1][i][1] as a list of strings, where we use the
variables x(1),...,x(n)
L[1][i][3] = only present if 'er' is set to 1; in that case it is an interger matrix whose rows are the extreme rays
of the cone
L[2] = is an integer matrix whose rows span the linearity space of the fan, i.e. the linear space which is contained in each cone
L[3] = the secondary polytope in the format of the procedure polymakePolytope
L[4] = the list of triangulations corresponding to the vertices of the secondary polytope

- the procedure calls for its computation polymake by Ewgenij Gawrilow, TU Berlin and Michael Joswig, so it only works if polymake is installed; see http://www.polymake.org/
- in the optional argument # it is possible to hand over other names for the variables to be used -- be careful, the format must be correct and that is not tested, e.g. if you want the variable names to be u00,u10,u01,u11 then you must hand over the string 'u11,u10,u01,u11'
- if the triangluations are not handed over as optional argument the procedure calls for its computation of these triangulations the program points2triangs from the program topcom by Joerg Rambau, Universitaet Bayreuth; it therefore is necessary that this program is installed in order to use this procedure; see

LIB "polymake.lib";
==> Welcome to polymake version
==> Copyright (c) 1997-2015
==> Ewgenij Gawrilow, Michael Joswig (TU Darmstadt)
==> http://www.polymake.org
// the lattice points of the unit square in the plane
list polygon=intvec(0,0),intvec(0,1),intvec(1,0),intvec(1,1);
// the secondary polytope of this lattice point configuration is computed
list secfan=secondaryFan(polygon);
==> Evaluating Commandline Options ...
==> ... done.
==> 0
==> 0
==> polymake: used package ppl
==>   The Parma Polyhedra Library (PPL): A C++ library for convex polyhedra
==>   and other numerical abstractions.
==>   http://www.cs.unipr.it/ppl/
// the number of cones in the secondary fan of the polygon
==> 2
// the inequalities of the first cone as matrix are:
==> 1,-1,-1,1
// the inequalities of the first cone as string are:
==> [1]:
==>    x(1)+x(4) > x(2)+x(3)
// the rows of the following matrix are the extreme rays of the first cone:
==> 1,-1,-1,1
// each cone contains the linearity space spanned by:
==> 0,0,-1,-1,
==> 1,0, 0,-1,
==> 0,1,-1, 0
// the points in the secondary polytope
==> 2,1,1,2,
==> 1,2,2,1
// the corresponding triangulations
==> [1]:
==>    [1]:
==>       1,2,3
==>    [2]:
==>       2,3,4
==> [2]:
==>    [1]:
==>       1,3,4
==>    [2]:
==>       1,2,4