Home Online Manual
Top
Back: normalFanL
Forward: triangulations
FastBack:
FastForward:
Up: polymake_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.13.2.5 groebnerFanP

Procedure from library polymake.lib (see polymake_lib).

Usage:
groebnerFanP(f); f poly

Return:
list, the ith entry of L[1] contains information about the ith cone in the Groebner fan dual to the ith vertex in the Newton polytope of the f
L[1][i][1] = integer matrix representing the inequalities which describe the cone
L[1][i][2] = a list which contains the inequalities represented by L[1][i][1] as a list of strings
L[1][i][3] = 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 Newton polytope of f in the format of the procedure newtonPolytopeP
L[4] = integer matrix where each row represents the exponent vector of one monomial occuring in the input polynomial

Note:
- if you have already computed the Newton polytope of f then you might want to use the procedure normalFanL instead in order to avoid doing costly computation twice
- 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/

Example:
 
LIB "polymake.lib";
==> Welcome to polymake version
==> Copyright (c) 1997-2015
==> Ewgenij Gawrilow, Michael Joswig (TU Darmstadt)
==> http://www.polymake.org
ring r=0,(x,y,z),dp;
matrix M[4][1]=1,x,y,z;
poly f=y3+x2+xy+2xz+yz+z2+1;
// the Newton polytope of f is
list gf=groebnerFanP(f);
==> 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 exponent vectors of f are ordered as follows
gf[4];
==> 0,3,0,
==> 2,0,0,
==> 1,1,0,
==> 1,0,1,
==> 0,1,1,
==> 0,0,2,
==> 0,0,0 
// the first cone of the groebner fan has the inequalities
gf[1][1][1];
==> -2, 0, 0,
==>  0,-3, 0,
==>  0, 0,-2
// as a string they look like
gf[1][1][2];
==> [1]:
==>    0 > 2x
==> [2]:
==>    0 > 3y
==> [3]:
==>    0 > 2z
// and it has the extreme rays
print(gf[1][1][3]);
==> -1, 0, 0,
==>  0,-1, 0,
==>  0, 0,-1
// the linearity space is spanned by
print(gf[2]);
==> 0,0,0
// the vertices of the Newton polytope are:
gf[3][1];
==> 0,0,0,
==> 2,0,0,
==> 0,3,0,
==> 0,0,2
// its dimension is
gf[3][2];
==> 3
// np[3] contains information how the vertices are connected to each other,
// e.g. the 1st vertex is connected to the 2nd, 3rd and 4th vertex
gf[3][3][1];
==> 2,3,4