The mutable hash table is stashed into X.cache#CohomCalg. If it doesn’t exist yet, it is created.
The keys of this hash table are the divisor classes (degrees) whose cohomology vector has already been computed. The value of the hash table for this key is a list of two things: the cohomology vector, and a list representing the denominators which appear for this degree.
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 : H = cohomCalg X o6 = MutableHashTable{} o6 : MutableHashTable |
Notice that the hash table H is empty, as we haven’t tried computing any cohomology vectors yet.
i7 : cohomCalg(X, {-4, 10, -9}) cohomCalg v0.32 (compiled for Linux/Unix Unrecognized) author: Benjamin Jurke (mail@benjaminjurke.com) Based on the algorithm detailed in arXiv:1003.5217 Usage and generation of intermediate monomial files deactivated. Starting computation of secondary sequences... 98.44% completed (0 secs remaining)... Computation of secondary cohomologies and contributions complete. Computing target cohomology 1 of 1 (0.0% done)... Computation of the target cohomology group dimensions complete. All done. Program run successfully completed. o7 = {0, 0, 0, 12960, 0} o7 : List |
i8 : for i from 0 to dim X list rank HH^i(X, OO_X(-4, 10, -9)) o8 = {0, 0, 0, 12960, 0} o8 : List |
i9 : peek cohomCalg X o9 = MutableHashTable{{-4, 10, -9} => {{0, 0, 0, 12960, 0}, {{3, ------------------------------------------------------------------------ 1x0*x1*x2*x6}, {3, 1x0*x1*x2*x3*x6}, {3, 1x0*x1*x2*x4*x6}}}} |