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 |