Home Online Manual
Top
Back: eulerPolynomialTable
Forward: twist
FastBack:
FastForward:
Up: tateProdCplxNegGrad_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.15.21.10 cohomologyHashTable

Procedure from library tateProdCplxNegGrad.lib (see tateProdCplxNegGrad_lib).

Usage:
cohomologyHashTable(M,L,low,high); M module, low intvec, high intvec

Purpose:
computes hashtable of sheaf cohomology groups of twists in the range between between low and high corresponding to coker(M)

Assume:
M module representing a sheaf F on the product of t projective spaces, note that at the moment M is a module over S,

Return:
cohomologytable where cohomologytable is a hash table with integer vectors in ZZ^{t+1} as keys, entries can be accessed via cohomologytable*(c_1,...,c_t,i) = dim(H^i(F(c_1,...,c_t)))

Note:
this function works for arbitrary products P^{n_1} x \cdots x P^{n_t} and corresponding Z^t-gradings

Example:
 
LIB "tateProdCplxNegGrad.lib";
intvec c = 1,1;
def (S,E) = productOfProjectiveSpaces(c);
intvec low = -3,-3;
intvec high = 3,3;
setring(S);
module M = 0;
intmat grading[2][1] = -1,-1;
M = setModuleGrading(M,grading);
def cohomologytable = cohomologyHashTable(M,low,high);
print(cohomologytable);
==> -3,-3,0 => 0
==> -3,-3,1 => 0
==> -3,-3,2 => 1
==> -2,-3,0 => 0
==> -2,-3,1 => 0
==> -2,-3,2 => 0
==> -1,-3,0 => 0
==> -1,-3,1 => 1
==> -1,-3,2 => 0
==> 0,-3,0 => 0
==> 0,-3,1 => 2
==> 0,-3,2 => 0
==> 1,-3,0 => 0
==> 1,-3,1 => 3
==> 1,-3,2 => 0
==> 2,-3,0 => 0
==> 2,-3,1 => 4
==> 2,-3,2 => 0
==> 3,-3,0 => 0
==> 3,-3,1 => 5
==> 3,-3,2 => 0
==> -3,-2,0 => 0
==> -3,-2,1 => 0
==> -3,-2,2 => 0
==> -3,-1,0 => 0
==> -3,-1,1 => 1
==> -3,-1,2 => 0
==> -3,0,0 => 0
==> -3,0,1 => 2
==> -3,0,2 => 0
==> -3,1,0 => 0
==> -3,1,1 => 3
==> -3,1,2 => 0
==> -3,2,0 => 0
==> -3,2,1 => 4
==> -3,2,2 => 0
==> -3,3,0 => 0
==> -3,3,1 => 5
==> -3,3,2 => 0
==> -2,-2,0 => 0
==> -2,-2,1 => 0
==> -2,-2,2 => 0
==> -2,-1,0 => 0
==> -2,-1,1 => 0
==> -2,-1,2 => 0
==> -2,0,0 => 0
==> -2,0,1 => 0
==> -2,0,2 => 0
==> -2,1,0 => 0
==> -2,1,1 => 0
==> -2,1,2 => 0
==> -2,2,0 => 0
==> -2,2,1 => 0
==> -2,2,2 => 0
==> -2,3,0 => 0
==> -2,3,1 => 0
==> -2,3,2 => 0
==> -1,-2,0 => 0
==> -1,-2,1 => 0
==> -1,-2,2 => 0
==> -1,-1,0 => 1
==> -1,-1,1 => 0
==> -1,-1,2 => 0
==> -1,0,0 => 2
==> -1,0,1 => 0
==> -1,0,2 => 0
==> -1,1,0 => 3
==> -1,1,1 => 0
==> -1,1,2 => 0
==> -1,2,0 => 4
==> -1,2,1 => 0
==> -1,2,2 => 0
==> -1,3,0 => 5
==> -1,3,1 => 0
==> -1,3,2 => 0
==> 0,-2,0 => 0
==> 0,-2,1 => 0
==> 0,-2,2 => 0
==> 0,-1,0 => 2
==> 0,-1,1 => 0
==> 0,-1,2 => 0
==> 0,0,0 => 4
==> 0,0,1 => 0
==> 0,0,2 => 0
==> 0,1,0 => 6
==> 0,1,1 => 0
==> 0,1,2 => 0
==> 0,2,0 => 8
==> 0,2,1 => 0
==> 0,2,2 => 0
==> 0,3,0 => 10
==> 0,3,1 => 0
==> 0,3,2 => 0
==> 1,-2,0 => 0
==> 1,-2,1 => 0
==> 1,-2,2 => 0
==> 1,-1,0 => 3
==> 1,-1,1 => 0
==> 1,-1,2 => 0
==> 1,0,0 => 6
==> 1,0,1 => 0
==> 1,0,2 => 0
==> 1,1,0 => 9
==> 1,1,1 => 0
==> 1,1,2 => 0
==> 1,2,0 => 12
==> 1,2,1 => 0
==> 1,2,2 => 0
==> 1,3,0 => 15
==> 1,3,1 => 0
==> 1,3,2 => 0
==> 2,-2,0 => 0
==> 2,-2,1 => 0
==> 2,-2,2 => 0
==> 2,-1,0 => 4
==> 2,-1,1 => 0
==> 2,-1,2 => 0
==> 2,0,0 => 8
==> 2,0,1 => 0
==> 2,0,2 => 0
==> 2,1,0 => 12
==> 2,1,1 => 0
==> 2,1,2 => 0
==> 2,2,0 => 16
==> 2,2,1 => 0
==> 2,2,2 => 0
==> 2,3,0 => 20
==> 2,3,1 => 0
==> 3,-2,0 => 0
==> 3,-2,1 => 0
==> 3,-2,2 => 0
==> 3,-1,0 => 5
==> 3,-1,1 => 0
==> 3,-1,2 => 0
==> 3,0,0 => 10
==> 3,0,1 => 0
==> 3,0,2 => 0
==> 3,1,0 => 15
==> 3,1,1 => 0
==> 3,1,2 => 0
==> 3,2,0 => 20
==> 3,2,1 => 0
==> 3,3,0 => 25
intvec d = 3,3,0;
cohomologytable*d;
==> 25
def (Z,eulerTable) = eulerPolynomialTable(M,low,high);
setring(Z);
print(eulerTable);
==> -3,-3 => h2
==> -2,-3 => 0
==> -1,-3 => h
==> 0,-3 => 2h
==> 1,-3 => 3h
==> 2,-3 => 4h
==> 3,-3 => 5h
==> -3,-2 => 0
==> -3,-1 => h
==> -3,0 => 2h
==> -3,1 => 3h
==> -3,2 => 4h
==> -3,3 => 5h
==> -2,-2 => 0
==> -2,-1 => 0
==> -2,0 => 0
==> -2,1 => 0
==> -2,2 => 0
==> -2,3 => 0
==> -1,-2 => 0
==> -1,-1 => 1
==> -1,0 => 2
==> -1,1 => 3
==> -1,2 => 4
==> -1,3 => 5
==> 0,-2 => 0
==> 0,-1 => 2
==> 0,0 => 4
==> 0,1 => 6
==> 0,2 => 8
==> 0,3 => 10
==> 1,-2 => 0
==> 1,-1 => 3
==> 1,0 => 6
==> 1,1 => 9
==> 1,2 => 12
==> 1,3 => 15
==> 2,-2 => 0
==> 2,-1 => 4
==> 2,0 => 8
==> 2,1 => 12
==> 2,2 => 16
==> 2,3 => 20
==> 3,-2 => 0
==> 3,-1 => 5
==> 3,0 => 10
==> 3,1 => 15
==> 3,2 => 20
==> 3,3 => 25