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.