Documentation on class.x

From Palp
Jump to: navigation, search

class.x implements the actual creation of the complete lists of reflexive polytopes in dimensions up to 4 (see hep-th/9805190 and hep-th/0002240). It contains routines for determining all subpolytopes of a given polytope in an efficient manner, for finding all lattices on which a given polytope is reflexive, and for several other tasks relevant to the classification.

In particular, as the resulting numbers of polytopes tend to get very large, class.x can encode a corresponding list in various binary formats. This can take the form of a single binary file or a collection of binary files to which we refer as a database (even though it is not a relational database in the usual sense). Actually there are two types of database: the first type is used in the classification procedure and contains only information on the polytopes themselves, whereas the second type also contains Hodge number information; the latter is accessed by the website Calabi Yau data. class.x contains routines for converting the various formats and for creating set theoretic unions or differences of the corresponding lists.

It is very important to use class.x with the appropriate parameter-setting of POLY_Dmax = 4. To get a good feeling for how class.x functions, we recommend to use it for rederiving the classification of reflexive 3-polytopes following section 3.2 of math/0204356.


Help screen

The available options are listed in the help screen:

palp$ class.x -h
This is  `class.x', a program for classifying reflexive polytopes
Usage:     class.x  [options] [ascii-input-file [ascii-output-file]]
-h          print this information
-f or -     use as filter; otherwise parameters denote I/O files
-m*         various types of minimality checks (* ... lvra)
-p* NAME    specification of a binary I/O file (* ... ioas)
-d* NAME    specification of a binary I/O database (DB) (* ... ios)
-r          recover: file=po-file.aux, use same pi-file
-o[#]       original lattice [omit up to # points] only
-s*         subpolytopes on various sublattices (* ... vphmbq)
-k          keep some of the vertices
-c, -C      check consistency of binary file or DB
-M[M]       print missing mirrors to ascii-output
-a[2b], -A  create binary file from ascii-input
-b[2a], -B  ascii-output from binary file or DB
-H*         applications related to Hodge number DBs (* ...cstfe)

Type one of [m,p,d,r,o,s,c,M,a,b,H] for help on options,
`g' for general help, `I' for general information on I/O or `e' 
to exit:

As the last two lines show, this help screen is interactive, i.e. by typing one of the option letters within the help program one can obtain further information. For this reason, and also because there are probably not too many potential users of this program, we shall be rather brief in the following descriptions.

Options of class.x

In the following we assume that the reader also consults the help text of 'class.x -h' followed by the letter for the corresponding option; otherwise our explanations may not make much sense or important details can be missed.


The interactive help screen is displayed (see above).


The filter flag turns off the prompt for input from the screen.

-ml, -mv, -mr, -ma

In hep-th/9512204, hep-th/9805190 and hep-th/0002240 several versions of the concept of a minimal polytope were defined (see math/0001106 for a summary). Given polytope input, it is determined whether these definitions are satisfied. This is the only option except '-h' for which both input and output are ascii.

-pi, -pa, -ps, -po

'-p*' specifies the name of a binary file. Depending on the second letter, this may be an input file, possibly such that the list it encodes should be added to or subtracted from some other list, or an output file.

-di, -ds, -do

Like '-p*', but now the name of a database is specified.


This option was used in the classification of reflexive 4-polytopes to recover intermediate results after computer crashes.

-o, -o[number], -oc

`-o' instructs class.x to ignore polytopes that are reflexive only on a sublattice. With a number following, only up to that number of points are omitted in the search for subpolytopes (for an example see section 3.1 of math/0204356). `-oc' modifies the behaviour of the previous option `-r'.

-sh, -sp, -sv, -sm, -sb, -sq

A given polytope Δ may be reflexive w.r.t. several distinct lattices if the lattice Mcoarsest generated by the vertices of Δ is not dual to the lattice Ncoarsest generated by the vertices of Δ * (see e.g. math/0001106). `-s*' finds such cases in the database; various versions called by different letters after `-s' correspond to lattices generated by different types of subsets of the set of lattice points of Δ. For example Calabi-Yau hypersurfaces that are free quotients result from sublattices generated by all points except those interior to facets.


With `-k' (for `keep') one can specify some vertices of an input polytope Δ such that class.x finds all reflexive subpolytopes of Δ that still contain these vertices.

-c, -C

These options perform consistency checks on a given file or database. This is very useful if one suspects that something may have gone wrong with the data.


A list given in binary format is checked for mirror symmetry. Those polytopes that would be required to make the list mirror symmetric are displayed.

-a, -A

Ascii input is converted to binary file format. `-a' corresponds to the standard normal form (cf. section poly.x -N) and `-A' to the affine normal form (cf. section poly.x -A).

-b, -B

Binary input is converted to ascii. `-b' is the standard version and `-B' should be used for lists created with `-A'.

-Hc, -Hs, -Ht, -Hf, -He

Options of this type are related to the second type of data base which contains data on Hodge numbers. They work only in dimension 4.

Personal tools