Sophie

Sophie

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

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>computing resolutions</title>
<link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/>
</head>
<body>
<table class="buttons">
  <tr>
    <td><div><a href="_computing_spsyzygies.html">next</a> | <a href="_compress.html">previous</a> | <a href="_computing_spsyzygies.html">forward</a> | <a href="_compress.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>computing resolutions</h1>
<div>Use the function <a href="_resolution.html" title="projective resolution">resolution</a>, often abbreviated as <tt>res</tt>, to compute a free resolution of a module.<table class="examples"><tr><td><pre>i1 : R = QQ[x..z];</pre>
</td></tr>
<tr><td><pre>i2 : M = cokernel vars R

o2 = cokernel | x y z |

                            1
o2 : R-module, quotient of R</pre>
</td></tr>
<tr><td><pre>i3 : C = res M

      1      3      3      1
o3 = R  &lt;-- R  &lt;-- R  &lt;-- R  &lt;-- 0
                                  
     0      1      2      3      4

o3 : ChainComplex</pre>
</td></tr>
</table>
See <a href="_chain_spcomplexes.html" title="">chain complexes</a> for further details about how to handle and examine the result.<p/>
A reference to the result is stored within the module <tt>M</tt>, so that requesting a computation of <tt>res M</tt> a second time yields the formerly computed result immediately.<p/>
If the computation is interrupted or discontinued after the skeleton has been successfully computed, then the partially completed resolution is available as <tt>M.cache.resolution</tt>, and can be examined with <a href="_status.html" title="status of a resolution computation">status</a>.  The computation can be continued with <tt>res M</tt>.  Here is an example, with an alarm interrupting the computation several times before it's complete.  (On my machine, the computation takes a total of 14 seconds.)<p/>
<table class="examples"><tr><td><pre>i4 : R = ZZ/2[a..d];</pre>
</td></tr>
<tr><td><pre>i5 : M = coker random(R^4, R^{5:-3,6:-4});</pre>
</td></tr>
<tr><td><pre>i6 : (&lt;&lt; "-- computation started: " &lt;&lt; endl;
      while true do try (
          alarm 3;
          time res M;
          alarm 0;
          &lt;&lt; "-- computation complete" &lt;&lt; endl;
          status M.cache.resolution;
          &lt;&lt; res M &lt;&lt; endl &lt;&lt; endl;
          break;
          ) else (
          &lt;&lt; "-- computation interrupted" &lt;&lt; endl;
          status M.cache.resolution;
          &lt;&lt; "-- continuing the computation" &lt;&lt; endl;
          ))
-- computation started: 
     -- used 1.3528 seconds
-- computation complete
 4      11      89      122      40
R  &lt;-- R   &lt;-- R   &lt;-- R    &lt;-- R   &lt;-- 0
                                         
0      1       2       3        4       5</pre>
</td></tr>
</table>
If the user has a chain complex in hand that is known to be a projective resolution of <tt>M</tt>, then it can be installed with <tt>M.cache.resolution = C</tt>.<p/>
There are various optional arguments associated with <a href="_resolution.html" title="projective resolution">resolution</a> which allow detailed control over the progress of the computation.</div>
</div>
</body>
</html>