<?xml version="1.0" encoding="utf-8" ?> <!-- for emacs: -*- coding: utf-8 -*- --> <!-- Apache may like this line in the file .htaccess: AddCharset utf-8 .html --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" > <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head><title>gb -- compute a Gröbner basis</title> <link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/> </head> <body> <table class="buttons"> <tr> <td><div><a href="___G__B__Degrees.html">next</a> | <a href="___Gamma.html">previous</a> | <a href="___G__B__Degrees.html">forward</a> | <a href="___Gamma.html">backward</a> | up | <a href="index.html">top</a> | <a href="master.html">index</a> | <a href="toc.html">toc</a> | <a href="http://www.math.uiuc.edu/Macaulay2/">Macaulay2 web site</a></div> </td> </tr> </table> <hr/> <div><h1>gb -- compute a Gröbner basis</h1> <div class="single"><h2>Synopsis</h2> <ul><li><div class="list"><dl class="element"><dt class="heading">Usage: </dt><dd class="value"><div><tt>gb I</tt></div> </dd></dl> </div> </li> <li><div class="single">Inputs:<ul><li><span><tt>I</tt>, an ideal, module, or matrix</span></li> </ul> </div> </li> <li><div class="single">Outputs:<ul><li><span><span>a <a href="___Groebner__Basis.html">Groebner basis</a></span>, a Gröbner basis computation object</span></li> </ul> </div> </li> <li><div class="single"><a href="_using_spfunctions_spwith_spoptional_spinputs.html">Optional inputs</a>:<ul><li><span><tt>Algorithm => </tt><span><span>a <a href="___Symbol.html">symbol</a></span>, <span>default value Inhomogeneous</span>, possible values: <a href="___Homogeneous.html" title="">Homogeneous</a>, <a href="___Inhomogeneous.html" title="">Inhomogeneous</a>, <a href="_gb.html" title="compute a Gröbner basis">Homogeneous2</a>, and <a href="_gb.html" title="compute a Gröbner basis">Sugarless</a>. Experimental options include <a href="_gb.html" title="compute a Gröbner basis">LinearAlgebra</a> and <a href="_gb.html" title="compute a Gröbner basis">Toric</a>.</span></span></li> <li><span><tt>BasisElementLimit => </tt><span><span>an <a href="___Z__Z.html">integer</a></span>, <span>default value infinity</span>, stop when this number of (nonminimal) Gröbner basis elements has been found</span></span></li> <li><span><tt>ChangeMatrix => </tt><span><span>a <a href="___Boolean.html">Boolean value</a></span>, <span>default value false</span>, whether to compute the change of basis matrix from Gröbner basis elements to original generators. Use <a href="_get__Change__Matrix.html" title="get the change of basis matrix">getChangeMatrix</a> to recover it.</span></span></li> <li><span><tt>CodimensionLimit => </tt><span><span>an <a href="___Z__Z.html">integer</a></span>, <span>default value infinity</span>, stop computation once codimension of submodule of lead terms reaches this value (not functional yet)</span></span></li> <li><span><tt>DegreeLimit => </tt><span><span>a <a href="___List.html">list</a></span>, <span>default value {}</span>, stop after the Gröbner basis in this degree has been computed</span></span></li> <li><span><tt>GBDegrees => </tt><span><span>a <a href="___List.html">list</a></span>, <span>default value null</span>, a list of positive integer weights, one for each variable in the ring, to be used for organizing the computation by degrees (the 'sugar' ecart vector)</span></span></li> <li><span><tt>HardDegreeLimit => </tt><span><span>default value null</span>, throws away all S-pairs of degrees beyond the limit. The computation will be re-initialized if higher degrees are required.</span></span></li> <li><span><tt>Hilbert => </tt><span><span>default value null</span>, informs Macaulay2 that this is the <a href="_poincare.html" title="assemble degrees into polynomial">poincare</a> polynomial, and can be used to aid in the computation of the Gröbner basis (Hilbert driven)</span></span></li> <li><span><tt>MaxReductionCount => </tt><span><span>an <a href="___Z__Z.html">integer</a></span>, <span>default value 10</span>, the maximum number of reductions of an S-pair done before requeueing it, if the <tt>Inhomogeneous</tt> algorithm is in use</span></span></li> <li><span><tt>PairLimit => </tt><span><span>an <a href="___Z__Z.html">integer</a></span>, <span>default value infinity</span>, stop after this number of spairs has been considered</span></span></li> <li><span><tt>StopBeforeComputation => </tt><span><span>a <a href="___Boolean.html">Boolean value</a></span>, <span>default value false</span>, whether to initialize the Gröbner basis engine but return before doing any computation (useful for using or viewing partially computed Gröbner bases)</span></span></li> <li><span><tt>StopWithMinimalGenerators => </tt><span><span>a <a href="___Boolean.html">Boolean value</a></span>, <span>default value false</span>, whether to stop as soon as the minimal set (or a trimmed set, if not homogeneous or local) of generators is known. Intended for internal use only</span></span></li> <li><span><tt>Strategy => </tt><span><span>default value {}</span>, either <a href="___Long__Polynomial.html" title="">LongPolynomial</a>, <a href="___Sort.html" title="">Sort</a>, or a list of these. <a href="___Long__Polynomial.html" title="">LongPolynomial</a>: use a geobucket data structure while reducing polynomials; <a href="___Sort.html" title="">Sort</a>: sort the S-pairs. Another symbol usable here is <tt>UseSyzygies</tt>. Usually S-pairs are processed degree by degree in the order that they were constructed.</span></span></li> <li><span><tt>SubringLimit => </tt><span><span>an <a href="___Z__Z.html">integer</a></span>, <span>default value infinity</span>, stop after this number of elements of the Gröbner basis lie in the first subring</span></span></li> <li><span><tt>Syzygies => </tt><span><span>a <a href="___Boolean.html">Boolean value</a></span>, <span>default value false</span>, whether to collect syzygies on the original generators during the computation. Intended for internal use only</span></span></li> <li><span><tt>SyzygyLimit => </tt><span><span>an <a href="___Z__Z.html">integer</a></span>, <span>default value infinity</span>, stop when this number of non-zero syzygies has been found</span></span></li> <li><span><tt>SyzygyRows => </tt><span><span>an <a href="___Z__Z.html">integer</a></span>, <span>default value infinity</span>, for each syzygy and change of basis element, keep only this many rows of each syzygy</span></span></li> </ul> </div> </li> </ul> </div> <div class="single"><h2>Description</h2> <div>See <a href="___Gröbner_spbases.html" title="">Gröbner bases</a> for more information and examples.<p/> The returned value is not the Gröbner basis itself. The matrix whose columns form a sorted, auto-reduced Gröbner basis are obtained by applying <a href="_generators.html" title="provide matrix or list of generators">generators</a> (synonym: <tt>gens</tt>) to the result of <tt>gb</tt>.<table class="examples"><tr><td><pre>i1 : R = QQ[a..d] o1 = R o1 : PolynomialRing</pre> </td></tr> <tr><td><pre>i2 : I = ideal(a^3-b^2*c, b*c^2-c*d^2, c^3) 3 2 2 2 3 o2 = ideal (a - b c, b*c - c*d , c ) o2 : Ideal of R</pre> </td></tr> <tr><td><pre>i3 : G = gens gb I o3 = | c3 bc2-cd2 a3-b2c c2d2 cd4 | 1 5 o3 : Matrix R <--- R</pre> </td></tr> </table> </div> </div> <div class="single"><h2>See also</h2> <ul><li><span><a href="___Gröbner_spbases.html" title="">Gröbner bases</a></span></li> <li><span><a href="_groebner__Basis.html" title="Gröbner basis, as a matrix">groebnerBasis</a> -- Gröbner basis, as a matrix</span></li> <li><span><a href="_generators_lp__Groebner__Basis_rp.html" title="the generator matrix of a Gröbner basis">generators(GroebnerBasis)</a> -- the generator matrix of a Gröbner basis</span></li> <li><span><a href="_gb__Trace.html" title="provide tracing output during various computations in the engine.">gbTrace</a> -- provide tracing output during various computations in the engine.</span></li> <li><span><a href="_install__Hilbert__Function.html" title="install a Hilbert function without computation">installHilbertFunction</a> -- install a Hilbert function without computation</span></li> <li><span><a href="_gb__Snapshot.html" title="the Gröbner basis matrix as so far computed">gbSnapshot</a> -- the Gröbner basis matrix as so far computed</span></li> <li><span><a href="_gb__Remove.html" title="remove Gröbner basis">gbRemove</a> -- remove Gröbner basis</span></li> </ul> </div> <div class="waystouse"><h2>Ways to use <tt>gb</tt> :</h2> <ul><li>gb(Ideal)</li> <li>gb(Matrix)</li> <li>gb(Module)</li> </ul> </div> </div> </body> </html>