#### D.15.29.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

User manual for Singular version 4.4.1, 2025, generated by texi2html.