As a an example, let's take the 4th example with $h^{11}=5$, $h^{21}=53$.
i1 : topes = kreuzerSkarke(5, 53, Limit=>4) using offline data file: ks5+53-n204.txt o1 = {4 5 M:51 5 N:11 5 H:5,53 [-96] id:0, 4 5 M:61 5 N:9 5 H:5,53 [-96] id:1, 4 9 M:60 9 N:10 6 H:5,53 [-96] id:2, 4 9 M:59 1 0 1 1 -8 1 0 0 4 -8 1 1 1 1 0 -1 -1 -2 -4 1 1 0 1 0 0 -3 0 1 1 9 -15 0 3 0 1 0 -1 -4 0 -4 0 2 0 0 3 3 -12 0 0 2 0 -6 0 0 2 2 0 2 2 -6 -4 0 0 0 0 0 6 -12 0 0 0 12 -12 0 0 0 0 1 -2 -2 3 1 0 0 ---------------------------------------------------------------------------------------------------------------------------- 9 N:10 6 H:5,53 [-96] id:3} 1 0 0 0 -2 -2 -2 0 0 4 0 -4 -6 -6 2 0 0 4 -6 -6 -4 0 1 1 1 -3 -3 -3 o1 : List |
i2 : assert(#topes == 4) |
i3 : tope = topes_3 o3 = 4 9 M:59 9 N:10 6 H:5,53 [-96] id:3 1 1 1 0 0 0 -2 -2 -2 0 2 0 0 4 0 -4 -6 -6 0 0 2 0 0 4 -6 -6 -4 0 0 0 1 1 1 -3 -3 -3 o3 : KSEntry |
i4 : header = description tope o4 = 4 9 M:59 9 N:10 6 H:5,53 [-96] id:3 |
i5 : A = matrix tope o5 = | 1 1 1 0 0 0 -2 -2 -2 | | 0 2 0 0 4 0 -4 -6 -6 | | 0 0 2 0 0 4 -6 -6 -4 | | 0 0 0 1 1 1 -3 -3 -3 | 4 9 o5 : Matrix ZZ <--- ZZ |
The description line gives some information about the example, see Kreuzer-Skarke description headers for more details. The polytope is the convex hull of the columns of the matrix $A$.
Some of the Kreuzer-Skarke data is available from this package off-line. To see what is available when not connected to the net, or when the website is down, call availableOffline.
i6 : availableOffline() o6 = HashTable{kreuzerSkarke(1) => /usr/share/Macaulay2/ReflexivePolytopesDB/ks1-n5.txt } kreuzerSkarke(2) => /usr/share/Macaulay2/ReflexivePolytopesDB/ks2-n36.txt kreuzerSkarke(3) => /usr/share/Macaulay2/ReflexivePolytopesDB/ks3-n244.txt kreuzerSkarke(5, Limit => 50) => /usr/share/Macaulay2/ReflexivePolytopesDB/ks5-n50.txt kreuzerSkarke(5,53) => /usr/share/Macaulay2/ReflexivePolytopesDB/ks5+53-n204.txt kreuzerSkarke(9,21) => /usr/share/Macaulay2/ReflexivePolytopesDB/ks9+21-n10.txt kreuzerSkarke(11,24) => /usr/share/Macaulay2/ReflexivePolytopesDB/ks11+24-n200.txt kreuzerSkarke(21, Limit => 100) => /usr/share/Macaulay2/ReflexivePolytopesDB/ks21-n100.txt kreuzerSkarke(300) => /usr/share/Macaulay2/ReflexivePolytopesDB/ks300-n20.txt kreuzerSkarke(491) => /usr/share/Macaulay2/ReflexivePolytopesDB/ks491-n1.txt o6 : HashTable |
If data can be obtained locally, it will, and a message indicating this is output.
If one has a string containing Kreuzer-Skarke entries, one can use this function to make a list of KSEntry's
i7 : str = "4 12 M:34 12 N:17 8 H:17,30 [-26] id:0 1 1 1 1 0 0 0 -3 -3 -1 -1 -3 0 3 0 1 0 1 0 -3 -5 0 -1 -3 0 0 2 2 0 0 1 -2 -2 -1 -1 -2 0 0 0 0 1 1 1 -1 -1 1 1 1" o7 = 4 12 M:34 12 N:17 8 H:17,30 [-26] id:0 1 1 1 1 0 0 0 -3 -3 -1 -1 -3 0 3 0 1 0 1 0 -3 -5 0 -1 -3 0 0 2 2 0 0 1 -2 -2 -1 -1 -2 0 0 0 0 1 1 1 -1 -1 1 1 1 |
i8 : L = kreuzerSkarke str o8 = {4 12 M:34 12 N:17 8 H:17,30 [-26] id:0 id:0 } 1 1 1 1 0 0 0 -3 -3 -1 -1 -3 0 3 0 1 0 1 0 -3 -5 0 -1 -3 0 0 2 2 0 0 1 -2 -2 -1 -1 -2 0 0 0 0 1 1 1 -1 -1 1 1 1 o8 : List |
i9 : matrix first L o9 = | 1 1 1 1 0 0 0 -3 -3 -1 -1 -3 | | 0 3 0 1 0 1 0 -3 -5 0 -1 -3 | | 0 0 2 2 0 0 1 -2 -2 -1 -1 -2 | | 0 0 0 0 1 1 1 -1 -1 1 1 1 | 4 12 o9 : Matrix ZZ <--- ZZ |
The database is organized by the h11 value. Placing filters can significantly slow down the database access. Using any of the optional arguments other than Limit also means that the locally stored datafiles will not be used.
The object kreuzerSkarke is a method function with options.