|
D.15.21.7 cohomologyMatrix
Procedure from library tateProdCplxNegGrad.lib (see tateProdCplxNegGrad_lib).
- Usage:
- cohomologyMatrix(M,L,low,high); M module, L list, low intvec, high intvec
- Purpose:
- computes the cohomology matrix of the sheaf corresponding to coker(M)
- Assume:
- M module over S, L list of two rings S and E (e.g. result of productOfProjectiveSpaces)
first entry L[1] = S and L[2] = E, integer vectors low <= high
- Return:
- ring Z in which cohomology matrix lives, it is exported in the variable cohomologymat, cohomologymat covers all cohomology
groups of twists in the range between low and high
Example:
| LIB "tateProdCplxNegGrad.lib";
// example 1
intvec c1 = 1,1;
def (S1,E1) = productOfProjectiveSpaces(c1);
intvec low1 = -3,-3;
intvec high1 = 3,3;
setring(S1);
module M1 = 0;
intmat grading1[2][1] = -1,-1;
M1 = setModuleGrading(M1,grading1);
ring Z1 = cohomologyMatrix(M1,low1,high1);
setring(Z1);
print(cohomologymat);
==> 5h,0,5,10,15,20,25,
==> 4h,0,4,8, 12,16,20,
==> 3h,0,3,6, 9, 12,15,
==> 2h,0,2,4, 6, 8, 10,
==> h, 0,1,2, 3, 4, 5,
==> 0, 0,0,0, 0, 0, 0,
==> h2,0,h,2h,3h,4h,5h
// example 2
intvec c2 = 1,2;
def (S2,E2) = productOfProjectiveSpaces(c2);
intvec low2 = -3,-3;
intvec high2 = 0,0;
setring(S2);
module M2 = 0;
intmat grading2[2][1] = 0,0;
M2 = setModuleGrading(M2,grading2);
ring Z2 = cohomologyMatrix(M2,low2,high2);
setring(Z2);
print(cohomologymat);
==> 2h, h, 0,1,
==> 0, 0, 0,0,
==> 0, 0, 0,0,
==> 2h3,h3,0,h2
// example 3
setring(S2);
module M3 = x(0)(0),x(1)(0)^3 + x(1)(1)^3 +x(1)(2)^3;
intmat grading3[2][1] = 0,0;
M3 = setModuleGrading(M3,grading3);
ring Z3 = cohomologyMatrix(M3,low2,high2);
setring(Z3);
print(cohomologymat);
==> h+1,h+1,h+1,h+1,
==> 3h, 3h, 3h, 3h,
==> 6h, 6h, 6h, 6h,
==> 9h, 9h, 9h, 9h
|
|