Synopsis:
complete C -- fills in the modules of a chain complex obtained as a resolution with information from the engine.
For the sake of efficiency, when a chain complex arises as a resolution of a module, the free modules are not filled in until they are needed. This routine can be used to fill them all in, and is called internally when a chain complex is printed. Normally users will not need this function, unless they use # to obtain the modules of the chain complex, or use keys to see which spots are occupied by modules.
i1 : R = ZZ/101[a..d]; |
i2 : C = resolution cokernel vars R; |
i3 : keys C |
i4 : complete C; |
i5 : keys C |
Code:
-- ../../../Macaulay2/m2/chaincomplexes.m2:17-22 complete ChainComplex := ChainComplex => C -> ( if C.?Resolution and not C.?complete then ( for i from 0 to C.Resolution.length do if 0 == (C#i = C_i) then break; C.complete = true; ); C)