|
D.15.21.9 eulerPolynomialTable
Procedure from library tateProdCplxNegGrad.lib (see tateProdCplxNegGrad_lib).
- Usage:
- eulerPolynomialTable(M,low,high); M module, L list, low intvec, high intvec
- Purpose:
- computes hash table of euler polynomials of twists of coker(M) in the range between low and high
- Assume:
- M module, note that at the moment M is a module over S,
- Return:
- (Z,eulerpolynomialtable), where eulerpolynomialtable is a hash table with entries in the ring Z = ZZ[h]
- Note:
- this function works for arbitrary products P^{n_1} x \cdots x P^{n_t} and corresponding Z^t-gradings, entries can be accessed via
eulerpolynomialtable*(a_1,...,a_t) where a=(a_1,...,a_t) is a multidegree betweeen 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);
def (Z1,eulerTable1) = eulerPolynomialTable(M1,low1,high1);
setring(Z1);
print(eulerTable1);
eulerTable1*low1;
setring(S1);
ring Z = cohomologyMatrix(M1,low1,high1);
setring(Z);
print(cohomologymat);
// example 2
intvec c2 = 1,1,1;
def (S2,E2) = productOfProjectiveSpaces(c2);
setring(S2);
intvec low2 = 0,0,0;
intvec high2 = 1,1,1;
module M2 = 0;
intmat grading2[3][1] = -1,-1,-1;
M2 = setModuleGrading(M2,grading2);
def (Z2,eulerTable2) = eulerPolynomialTable(M2,low2,high2);
setring(Z2);
print(eulerTable2);
|
|