In this package, each complex has a concentration (lo, hi) such that lo <= hi. When lo <= i <= hi, the module Ci might be zero.
This function is mainly used in programming, to loop over all non-zero modules or maps in the complex. This should not be confused with the support of a complex.
i1 : S = ZZ/101[a..c] o1 = S o1 : PolynomialRing |
i2 : C = freeResolution coker vars S 1 3 3 1 o2 = S <-- S <-- S <-- S 0 1 2 3 o2 : Complex |
i3 : concentration C o3 = (0, 3) o3 : Sequence |
i4 : D = C ++ C[5] 1 3 3 1 1 3 3 1 o4 = S <-- S <-- S <-- S <-- 0 <-- S <-- S <-- S <-- S -5 -4 -3 -2 -1 0 1 2 3 o4 : Complex |
i5 : concentration D o5 = (-5, 3) o5 : Sequence |
Indices that are outside of the concentration automatically return the zero object.
i6 : C_-1 o6 = 0 o6 : S-module |
i7 : D_4 o7 = 0 o7 : S-module |
The function concentration does no computation. To eliminate extraneous zeros, use prune(Complex) (missing documentation).
i8 : f1 = a*id_C 1 1 o8 = 0 : S <--------- S : 0 | a | 3 3 1 : S <----------------- S : 1 {1} | a 0 0 | {1} | 0 a 0 | {1} | 0 0 a | 3 3 2 : S <----------------- S : 2 {2} | a 0 0 | {2} | 0 a 0 | {2} | 0 0 a | 1 1 3 : S <------------- S : 3 {3} | a | o8 : ComplexMap |
i9 : E = ker f1 o9 = image 0 <-- image 0 <-- image 0 <-- image 0 0 1 2 3 o9 : Complex |
i10 : concentration E o10 = (0, 3) o10 : Sequence |
i11 : concentration prune E o11 = (0, 0) o11 : Sequence |
The concentration of a zero complex can be arbitrary, however, after pruning, its concentration will be (0,0).
i12 : C0 = (complex S^0)[4] o12 = 0 -4 o12 : Complex |
i13 : concentration C0 o13 = (-4, -4) o13 : Sequence |
i14 : prune C0 o14 = 0 0 o14 : Complex |
i15 : concentration oo o15 = (0, 0) o15 : Sequence |