H=cohomologyHashTable(M,low,high)
H=cohomologyHashTable(T,low,high)
If M is a multi-graded module representing a coherent sheaf F on $P^n := P^{n_0} x .. x P^{n_{t-1}}$, the script returns a hash table with entries {a,i} => h^i(F(a)) where a is a multi-index, low<=a<=high in the partial order (thus the value is 0 when i is not in the range 0..sum n.) In case T is a Tate resolution corresponding to an object F in D^b(P^n), then the values returned are the dimensions of the hypercohomology groups of twists of F, and the values can be nonzero in a wider range.
In case the number of factors t is 2, the output of cohomologyMatrix is easier to parse.
The script computes a sufficient part of the Tate resolution for F, and then calls itself in the version for a Tate resolution.
If T is not a large enough part of the Tate resolution, such as W below, then the function collects only the contribution of T to the cohomology table of the Tate resolution, according to the formula in Corollary 0.2 of Tate Resolutions on Products of Projective Spaces.
|
|
|
|
We can print just the entries representing nonzero cohomology groups:
|
In the case of two factors (t=2), the same information can be read conveniently from a matrix
|
where the entry in the a= \{a_0,a_1\} place is sum_i h^i(F(a)*h^i \in ZZ[h]. In the case of more factors, the same format is available through the command
|
In case of hypercohomology, we write k instead of h^{-1}, and use the cohomology ring ZZ[h,k].
The object cohomologyHashTable is a method function.