# ReflexivePolytopesDB -- simple access to Kreuzer-Skarke database of reflexive polytopes of dimensions 3 and 4

## Description

In each given dimension d, it is known that the number of distinct (up to invertible integral change of basis) reflexive polytopes of dimension d is finite in number. For example, in dimension 1 there is 1, in dimension 2, there are 16 and in dimension 3, there are 4319 distinct refdlexive polytopes.

In a major work, Max Kreuzer and Harold Skarke found algorithms for computing the set of such polytopes. They used these algorithms to show that there are 473,800,776 distinct 4-dimensional reflexive polytopes. The number is sufficiently large that they created a website http://hep.itp.tuwien.ac.at/~kreuzer/CY/ and an interface to access these examples. See their website for references to the algorithms used.

This package, ReflexivePolytopesDB, provides access to this database of reflexive polytopes of dimension 3 and dimension 4.

This package also contains a small part of this database for offline use, in case one cannot access the database.

Here we describe a simple use of the package. The actual investigation of the corresponding polytope or toric variety, or Calabi-Yau hypersurface, is done in Macaulay2 with the aid of other packages, such as Polyhedra.

Let’s take one example polytope from the database, one whose corresponding Calabi-Yau 3-fold has Hodge numbers h1,1(X) = 23 and h1,2(X) = 17. We limit the number we obtain to 2.

 ```i1 : str = getKreuzerSkarke(23,17, Limit=>2) http://quark.itp.tuwien.ac.at/cgi-bin/cy/cydata.cgi?h11=23&h12=17&L=2 o1 = SEARCH RESULTS
Search command:      class.x -di x -He EH23:17MVNFL2       Result:      4 5  M:18 5 N:22 5 H:23,17 [12]          1    0    1    1   -4          0    1    0    0   -1          0    0    3    0   -3          0    0    0    3   -3      4 6  M:22 6 N:24 7 H:23,17 [12]          1    0   -3    1    1   -1          0    1   -2    0    0    2          0    0    0    2    0   -2          0    0    0    0    2   -2      Exceeded limit of 2
```

Now we parse this string, into a list of pairs of Strings.

 `i2 : L = parseKS str;` ```i3 : netList L +-----------------------------------------------------------------+ o3 = |(4 5 M:18 5 N:22 5 H:23,17 [12], 1 0 1 1 -4) | | 0 1 0 0 -1 | | 0 0 3 0 -3 | | 0 0 0 3 -3 | +-----------------------------------------------------------------+ |(4 6 M:22 6 N:24 7 H:23,17 [12], 1 0 -3 1 1 -1)| | 0 1 -2 0 0 2 | | 0 0 0 2 0 -2 | | 0 0 0 0 2 -2 | +-----------------------------------------------------------------+```

The result consists of lists of two strings. For each element in the list, the first is a header string, see Kreuzer-Skarke headers. The second is a string that corresponds to a matrix.

Let’s consider the last example in this last. We get that matrix via the utility function matrixFromString.

 ```i4 : eg = last L o4 = (4 6 M:22 6 N:24 7 H:23,17 [12], 1 0 -3 1 1 -1) 0 1 -2 0 0 2 0 0 0 2 0 -2 0 0 0 0 2 -2 o4 : Sequence``` ```i5 : A = matrixFromString eg_1 o5 = | 1 0 -3 1 1 -1 | | 0 1 -2 0 0 2 | | 0 0 0 2 0 -2 | | 0 0 0 0 2 -2 | 4 6 o5 : Matrix ZZ <--- ZZ```

The corresponding reflexive polytope has 5 vertices, the columns of this matrix.

 ```i6 : needsPackage "Polyhedra" o6 = Polyhedra o6 : Package``` ```i7 : P = convexHull A o7 = P o7 : Polyhedron``` ```i8 : isReflexive P o8 = true``` ```i9 : P2 = polar P o9 = P2 o9 : Polyhedron``` ```i10 : (numColumns vertices P, numColumns vertices P2) o10 = (6, 7) o10 : Sequence``` ```i11 : (# latticePoints P, # latticePoints P2) o11 = (22, 24) o11 : Sequence```

## Version

This documentation describes version 0.9 of ReflexivePolytopesDB.

## Source code

The source code from which this documentation is derived is in the file ReflexivePolytopesDB.m2. The auxiliary files accompanying it are in the directory ReflexivePolytopesDB/.

## Exports

• Functions and commands
• generateOffline -- generate tables of reflexive 4d poytopes from Kreuzer-Skarke list
• getKreuzerSkarke -- access Kreuzer-Skarke dim 4 reflexive polytopes database
• getKreuzerSkarkeDim3 -- download Kreuzer-Skarke dim 3 reflexive polytopes database of 4319 examples
• matrixFromString -- convert a string to a matrix of integers
• parseKS -- parse values from Kreuzer-Skarke database
• Symbols
• Access (missing documentation)
• DualLatticePoints (missing documentation)
• Expected (missing documentation)
• Facets (missing documentation)
• H12 (missing documentation)
• LatticePoints (missing documentation)
• Vertices (missing documentation)