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, Macaulay2 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).