Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 7ebd25ac536d248d499a3ce2acda963a > files > 4480

Macaulay2-1.3.1-8.fc15.i686.rpm

<?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>hilbertFunction -- the Hilbert function</title>
<link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/>
</head>
<body>
<table class="buttons">
  <tr>
    <td><div><a href="_hilbert__Polynomial.html">next</a> | <a href="___Hilbert.html">previous</a> | <a href="_hilbert__Polynomial.html">forward</a> | <a href="___Hilbert.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>hilbertFunction -- the Hilbert function</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>hilbertFunction(d,X)</tt></div>
</dd></dl>
</div>
</li>
<li><div class="single">Inputs:<ul><li><span><tt>d</tt>, an integer (or a list of integers) specifying a degree (or multidegree)</span></li>
<li><span><tt>M</tt>, a ring, module, ideal, coherent sheaf, or projective variety</span></li>
</ul>
</div>
</li>
<li><div class="single">Outputs:<ul><li><span><span>an <a href="___Z__Z.html">integer</a></span>, the dimension of the degree <tt>d</tt> part of <tt>M</tt>.  For an ideal, the corresponding quotient ring is used.  For a projective varieties and coherent sheaves, the functionality is not yet implemented.</span></li>
</ul>
</div>
</li>
</ul>
</div>
<div class="single"><h2>Description</h2>
<div><p>In the following example, compare the rank of the source of the basis map to the number provided by <a href="_hilbert__Function.html" title="the Hilbert function">hilbertFunction</a>.</p>
<table class="examples"><tr><td><pre>i1 : R = QQ[x,y,z, Degrees=>{3:{1,1}}];</pre>
</td></tr>
<tr><td><pre>i2 : hilbertFunction({3,3}, R)

o2 = 10</pre>
</td></tr>
<tr><td><pre>i3 : basis({3,3},R)

o3 = | x3 x2y x2z xy2 xyz xz2 y3 y2z yz2 z3 |

             1       10
o3 : Matrix R  &lt;--- R</pre>
</td></tr>
</table>
The standard meaning of subscripts on functions permits a simpler syntax to be used.<table class="examples"><tr><td><pre>i4 : hilbertFunction_{3,3} R

o4 = 10</pre>
</td></tr>
</table>
Here is a singly graded example.<table class="examples"><tr><td><pre>i5 : R = QQ[x,y,z];,

o6 = (, )

o6 : Sequence</pre>
</td></tr>
<tr><td><pre>i7 : hilbertFunction({3}, R)

o7 = 10</pre>
</td></tr>
<tr><td><pre>i8 : hilbertFunction(3, R)

o8 = 10</pre>
</td></tr>
</table>
Here is an example with a module.<table class="examples"><tr><td><pre>i9 : R = QQ[a..d, Degrees=>{4:{1,1}}];</pre>
</td></tr>
<tr><td><pre>i10 : M = coker matrix {{a,c,d},{c,b,d}}

o10 = cokernel | a c d |
               | c b d |

                             2
o10 : R-module, quotient of R</pre>
</td></tr>
<tr><td><pre>i11 : hilbertFunction({2,2}, M)

o11 = 8</pre>
</td></tr>
<tr><td><pre>i12 : B = basis({2,2},M)

o12 = | b2 bc c2 cd d2 0  0  0  |
      | 0  0  0  0  0  a2 ac c2 |

o12 : Matrix</pre>
</td></tr>
<tr><td><pre>i13 : numgens source B

o13 = 8</pre>
</td></tr>
</table>
Here is an example with an ideal.<table class="examples"><tr><td><pre>i14 : R = QQ[a..f, Degrees=>{6:{1,1}}];</pre>
</td></tr>
<tr><td><pre>i15 : I = ideal (a*b, c*d, e*f);

o15 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i16 : hilbertFunction({2,2}, I)

o16 = 18</pre>
</td></tr>
<tr><td><pre>i17 : S = R/I;</pre>
</td></tr>
<tr><td><pre>i18 : basis({2,2},S)

o18 = | a2 ac ad ae af b2 bc bd be bf c2 ce cf d2 de df e2 f2 |

              1       18
o18 : Matrix S  &lt;--- S</pre>
</td></tr>
</table>
</div>
</div>
<div class="single"><h2>Caveat</h2>
<div>It can be much faster to compute a basis for the desired degree, because hilbertFunction works by expanding the Hilbert series to a sufficiently high order, thus, in effect, computing many values of the Hilbert function simultaneously.  If several values of the Hilbert function are desired, it is best to compute the ones of higher degree first, so the expansion will be done to sufficiently high order at the first attempt, and thus be done just once.</div>
</div>
<div class="single"><h2>See also</h2>
<ul><li><span><a href="_degrees__Ring.html" title="the ring of degrees">degreesRing</a> -- the ring of degrees</span></li>
<li><span><a href="_reduce__Hilbert.html" title="reduce a Hilbert series expression">reduceHilbert</a> -- reduce a Hilbert series expression</span></li>
<li><span><a href="_poincare.html" title="assemble degrees into polynomial">poincare</a> -- assemble degrees into polynomial</span></li>
<li><span><a href="_poincare__N.html" title="assemble degrees into polynomial">poincareN</a> -- assemble degrees into polynomial</span></li>
<li><span><a href="_hilbert__Series.html" title="compute the Hilbert series">hilbertSeries</a> -- compute the Hilbert series</span></li>
<li><span><a href="_hilbert__Polynomial.html" title="compute the Hilbert polynomial">hilbertPolynomial</a> -- compute the Hilbert polynomial</span></li>
<li><span><a href="_numgens.html" title="the number of generators">numgens</a> -- the number of generators</span></li>
<li><span><a href="___Function_sp_us_sp__Thing.html" title="attach the first argument to a function of two or more arguments">Function _ Thing</a> -- attach the first argument to a function of two or more arguments</span></li>
</ul>
</div>
<div class="waystouse"><h2>Ways to use <tt>hilbertFunction</tt> :</h2>
<ul><li>hilbertFunction(List,CoherentSheaf)</li>
<li>hilbertFunction(List,Ideal)</li>
<li>hilbertFunction(List,Module)</li>
<li>hilbertFunction(List,ProjectiveVariety)</li>
<li>hilbertFunction(List,Ring)</li>
<li>hilbertFunction(ZZ,CoherentSheaf)</li>
<li>hilbertFunction(ZZ,Ideal)</li>
<li>hilbertFunction(ZZ,Module)</li>
<li>hilbertFunction(ZZ,ProjectiveVariety)</li>
<li>hilbertFunction(ZZ,Ring)</li>
</ul>
</div>
</div>
</body>
</html>