The answers are stashed into the mutable hashtable X.cache#CohomCalg, and are not recomputed if possible.
Given a toric divisor D, or its degree d, its cohomology vector is the list {h0(X, OOX(d)), h1(X, OOX(d)), ..., hdim X(X, OOX(d)) }.
Here is an example.
i1 : needsPackage "ReflexivePolytopesDB" o1 = ReflexivePolytopesDB o1 : Package |
i2 : topes = kreuzerSkarke(5, Limit => 20); using offline data file: ks5-n50.txt |
i3 : A = matrix topes_15 o3 = | 1 1 0 1 -1 -2 1 | | 0 2 0 0 -4 0 6 | | 0 0 1 0 2 -1 -4 | | 0 0 0 2 -2 0 0 | 4 7 o3 : Matrix ZZ <--- ZZ |
i4 : P = convexHull A o4 = P o4 : Polyhedron |
i5 : X = normalToricVariety P o5 = X o5 : NormalToricVariety |
i6 : D = 3 * X_0 - 5 * X_4 o6 = 3*X - 5*X 0 4 o6 : ToricDivisor on X |
i7 : cohomCalg(D, Silent => true) o7 = {0, 0, 0, 194, 0} o7 : List |
We compare this to the results from NormalToricVarieties.
i8 : cohomCalg(X, D) o8 = {0, 0, 0, 194, 0} o8 : List |
i9 : for i from 0 to dim X list rank HH^i(X, OO D) o9 = {0, 0, 0, 194, 0} o9 : List |
i10 : peek cohomCalg X o10 = MutableHashTable{{-22, 3, 17} => {{0, 0, 0, 194, 0}, {{3, ----------------------------------------------------------------------- 1x1*x2*x4*x5}, {3, 1x1*x2*x3*x4*x5}, {3, 1x1*x2*x4*x5*x6}}}} |