next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Complexes :: concentration

concentration -- indices on which a complex may be non-zero

Synopsis

Description

In this package, each complex has a concentration (lo, hi) such that lo <= hi. When lo <= i <= hi, the module C_i might be zero. The methods max and min applied to the complex C return lo and hi, respectively.

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];
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
i6 : min D

o6 = -5
i7 : max D

o7 = 3
i8 : assert((min D, max D) === concentration D)

Indices that are outside of the concentration automatically return the zero object.

i9 : C_-1

o9 = 0

o9 : S-module
i10 : D_4

o10 = 0

o10 : S-module

The function concentration does no computation. To eliminate extraneous zeros, use prune(Complex).

i11 : f1 = a*id_C

           1             1
o11 = 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 |

o11 : ComplexMap
i12 : E = ker f1

o12 = image 0 <-- image 0 <-- image 0 <-- image 0
                                           
      0           1           2           3

o12 : Complex
i13 : concentration E

o13 = (0, 3)

o13 : Sequence
i14 : concentration prune E

o14 = (0, 0)

o14 : Sequence

The concentration of a zero complex can be arbitrary, however, after pruning, its concentration will be (0,0).

i15 : C0 = (complex S^0)[4]

o15 = 0
       
      -4

o15 : Complex
i16 : concentration C0

o16 = (-4, -4)

o16 : Sequence
i17 : prune C0

o17 = 0
       
      0

o17 : Complex
i18 : concentration oo

o18 = (0, 0)

o18 : Sequence

See also

Ways to use concentration :

For the programmer

The object concentration is a method function.