Package sage :: Package rings :: Package polynomial :: Module groebner_fan
[hide private]
[frames] | no frames]

Module groebner_fan

source code


Groebner Fans

\SAGE provides much of the functionality of gfan, which is a software
package whose main function is to enumerate all reduced Gr\"obner
bases of a polynomial ideal. The reduced Gr\"obner bases yield the
maximal cones in the Gr\"obner fan of the ideal. Several
subcomputations can be issued and additional tools are included. Among
these the highlights are:

\begin{itemize}

\item Commands for computing tropical varieties.

\item Interactive walks in the Gr\"obner fan of an ideal.

\item Commands for graphical renderings of Gr\"obner fans
      and monomial ideals.

\end{itemize}


AUTHORS:

   -- Anders Nedergaard Jensen: Wrote the gfan C++ program, which
      implements algorithms many of which were invented by Jensen,
      Komei Fukuda, and Rekha Thomas. All the underlying hard work of
      the Gr\"obner fans functionality of \sage depends on this C++
      program.
      
   -- William Stein (2006-04-20): Wrote first version of the \SAGE
      code for working with Groebner fans.

   -- Tristram Bogart (bogart@math): the design of the \SAGE interface
      to gfan is joint work with Tristram Bogart, who also supplied
      numerous examples.
 
   -- Marshall Hampton (2008-03-25): Rewrote various functions to use
      gfan-0.3.
      This is still a work in progress, comments are appreciated on
      sage-devel@googlegroups.com (or personally at hamptonio@gmail.com).

EXAMPLES:
    sage: x,y = QQ['x,y'].gens() 
    sage: i = ideal(x^2 - y^2 + 1)
    sage: g = i.groebner_fan()
    sage: g.reduced_groebner_bases()
    [[x^2 - y^2 + 1], [-x^2 + y^2 - 1]]

TESTS:
    sage: x,y = QQ['x,y'].gens() 
    sage: i = ideal(x^2 - y^2 + 1)
    sage: g = i.groebner_fan()
    sage: g == loads(dumps(g))
    True

REFERENCES:
     Anders N. Jensen; Gfan, a software system for Gr\"obner fans;
     available at
     \url{http://www.math.tu-berlin.de/~jensen/software/gfan/gfan.html}



Classes [hide private]
  PolyhedralCone
  PolyhedralFan
  GroebnerFan
  ReducedGroebnerBasis
Functions [hide private]
 
prefix_check(str_list)
Checks if any strings in a list are prefixes of another string in the list.
source code
 
max_degree(list_of_polys)
Computes the maximum degree of a list of polynomials...
source code
 
_cone_parse(fan_dict_cone)
Utility funtion that parses cone information into a dict indexed by dimension.
source code
Function Details [hide private]

prefix_check(str_list)

source code 

Checks if any strings in a list are prefixes of another string in
the list.

EXAMPLES:
    sage: from sage.rings.polynomial.groebner_fan import prefix_check
    sage: prefix_check(['z1','z1z1'])
    False
    sage: prefix_check(['z1','zz1'])
    True

max_degree(list_of_polys)

source code 

Computes the maximum degree of a list of polynomials

EXAMPLES:
    sage: from sage.rings.polynomial.groebner_fan import max_degree
    sage: R.<x,y> = PolynomialRing(QQ,2)
    sage: p_list = [x^2-y,x*y^10-x]
    sage: max_degree(p_list)
    11.0

_cone_parse(fan_dict_cone)

source code 

Utility funtion that parses cone information into a dict indexed
by dimension.

INPUT:
    fan_dict_cone -- the value of a fan_dict with key 'CONES'

EXAMPLES:
    sage: R.<x,y,z,w> = PolynomialRing(QQ,4)
    sage: ts = R.ideal([x^2+y^2+z^2-1,x^4-y^2-z-1,x+y+z,w+x+y])
    sage: tsg = ts.groebner_fan()
    sage: tstr = tsg.tropical_intersection()
    sage: from sage.rings.polynomial.groebner_fan import _cone_parse
    sage: _cone_parse(tstr.fan_dict['CONES'])
    {1: [[0], [1], [3], [2], [4]], 2: [[2, 4]]}