# Singular

#### D.13.1.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.math.tu-berlin.de/polymake/

Example:
 ```LIB "polymake.lib"; 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); // the exponent vectors of f are ordered as follows gf[4]; // the first cone of the groebner fan has the inequalities gf[1][1][1]; // as a string they look like gf[1][1][2]; // and it has the extreme rays print(gf[1][1][3]); // the linearity space is spanned by print(gf[2]); // the vertices of the Newton polytope are: gf[3][1]; // its dimension is gf[3][2]; // 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]; ```