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