next | previous | forward | backward | up | top | index | toc | home

ChainComplex _ ZZ -- component

Synopsis

Description

i1 : R = QQ[x,y,z]/(x^3,y^3,z^3,x*y*z);
i2 : C = res(coker vars R, LengthLimit=>8)

      1      3      7      16      37      86      200      465      1081
o2 = R  <-- R  <-- R  <-- R   <-- R   <-- R   <-- R    <-- R    <-- R
                                                                     
     0      1      2      3       4       5       6        7        8

o2 : ChainComplex
i3 : rank C_7

o3 = 465
i4 : C.dd_3

o4 = {2} | x  0 -z2 0   0  -xy 0 y2 0 0   0  0  0 xz2 xy2 0   |
     {2} | -y 0 0   -z2 yz y2  0 0  0 0   x2 0  0 0   0   x2y |
     {2} | z  0 0   0   0  0   0 0  0 -y2 0  x2 0 0   0   0   |
     {3} | 0  z y   x   0  0   0 0  0 0   0  0  0 0   0   0   |
     {3} | 0  0 0   0   z  y   x 0  0 0   0  0  0 0   0   0   |
     {3} | 0  0 0   0   0  0   0 z  y x   0  0  0 0   0   0   |
     {3} | 0  0 0   0   0  0   0 0  0 0   z  y  x 0   0   0   |

             7       16
o4 : Matrix R  <--- R

Programming hint

The chain complex C is implemented as a hash table, but since the computation of a projective resolution can be stopped prematurely, Macaulay 2 doesn't bother populating the hash table with the relevant free modules until explicitly requested by the user, for example, in response to the command C_i described above. The hash table C can be examined directly with code like C#i, but in order to populate the hash table completely, use complete(ChainComplex).

See also