In this package, each map of complexes has a concentration (lo, hi) such that lo <= hi. When lo <= i <= hi, the map f_i might be zero.
This function is mainly used in programming, to loop over all non-zero maps. This should not be confused with the support of the source or target.
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 id_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 id_D o5 = (-5, 3) o5 : Sequence |
i6 : f = randomComplexMap(D, C) 1 1 o6 = 0 : S <---------- S : 0 | 24 | 3 3 1 : S <----------------------- S : 1 {1} | -36 19 -29 | {1} | -30 19 -8 | {1} | -29 -10 -22 | 3 3 2 : S <----------------------- S : 2 {2} | -29 -16 34 | {2} | -24 39 19 | {2} | -38 21 -47 | 1 1 3 : S <--------------- S : 3 {3} | -39 | o6 : ComplexMap |
i7 : concentration f o7 = (0, 3) o7 : Sequence |
Indices that are outside of the concentration automatically return the zero object.
i8 : f_-1 o8 = 0 o8 : Matrix 0 <--- 0 |
i9 : (id_D)_4 o9 = 0 o9 : Matrix 0 <--- 0 |
Maps inside the concentration may nevertheless be zero.
i10 : (id_D)_-1 o10 = 0 o10 : Matrix 0 <--- 0 |
The concentration of a zero complex can be arbitrary, however, after pruning, its concentration will be (0,0).
i11 : C0 = (complex S^0)[4] o11 = 0 -4 o11 : Complex |
i12 : g = id_C0 o12 = -4 : 0 <----- 0 : -4 0 o12 : ComplexMap |
i13 : concentration g o13 = (-4, -4) o13 : Sequence |
i14 : prune g o14 = 0 o14 : ComplexMap |
i15 : concentration oo o15 = (0, 0) o15 : Sequence |