# Documentation on nef.x

nef.x is a package to analyze nef partitions of a reflexive polytope. Such nef partitions determine complete intersections of Calabi-Yau type in toric varieties of, in principle, arbitrary codimension. Given a reflexive polytope in terms of a combined weight system or a list of points the main objective of the program is to determine the nef partitions and the Hodge numbers of the corresponding Calabi-Yau varieties. Further features include the calculation of the corresponding reflexive Gorenstein cones as well as information about the fibration structure.

The corresponding routines are listed in the header file *Nef.h*.

## Contents |

## Nef partitions and reflexive Gorenstein cones

Consider a dual pair of d-dimensional reflexive polytopes
. A
partition of the set of vertices of
Δ^{ * } into disjoint subsets is called a
nef partition of length r if there exist r integral upper convex
Σ(Δ^{ * })-piecewise linear support functions
, such that

Each ϕ_{l} corresponds to a divisor
on the toric variety associated to Δ^{ * }, and
the intersection of all these divisors

defines a family of Calabi-Yau complete intersections of codimension r.

Moreover, each ϕ_{l} corresponds to a lattice
polytope Δ_{l} defined as

The sum of the functions ϕ_{l} is equal to the
support function of the anticanonical divisor and, therefore, the
corresponding Minkowski sum is .
Moreover, the knowledge of the decomposition
is equivalent to that of the set of supporting polytopes
, and therefore this data is
often also called a nef partition.

For a given nef partition Π(Δ) the polytopes (The brackets denote the convex hull.)

define again a nef partition
such that the Minkowski
sum is a reflexive
polytope. Then, its dual is also reflexive, and
is called the dual nef partition. This is the
combinatorial manifestation of mirror symmetry in terms of dual
pairs of nef partitions of Δ^{ * } and , which we
summarize in the following diagram

In the horizontal direction, we have the duality between the lattices M and N and mirror symmetry goes from the upper right to the lower left. The complete intersections and associated to the dual nef partitions are then mirror Calabi-Yau varieties.

There are two constructions to build new nef partitions from old ones:
projections and direct products.
Given a nef partition
where one of the subsets *V*_{l}, say *V*_{0},
consists of a single vertex v, the nef condition implies that the
projection of Δ^{ * } along v is
reflexive. Moreover,the Calabi-Yau complete
intersection X is given by with . Since D can only intersect the toric divisors that
correspond to points bounding the reflexive projection along v, the
variety X is isomorphic to the variety , where is obtained from the
projection . In hep-th/0410018 such nef partitions
were called trivial.
In nef.x they are labeled by P for projection,
see -P.

Suppose we are given two lattices *M*^{(1)},*M*^{(2)} and two reflexive polytopes
,
such that (Δ^{(1)})^{ * } and (Δ^{(2)})^{ * } admit
nef partitions and
, respectively.
Then is
reflexive with respect to and dual to Δ^{ * }
whose set of vertices V is .
V admits a nef partition induced from the
nef partitions *V*^{(1)} and *V*^{(2)}. Such a nef partition is
called a direct product since the corresponding Calabi-Yau complete
intersection X is a direct product in .

One can reformulate the duality of nef partitions in terms of reflexive Gorenstein cones as follows. We extend the lattices M and N to and and set .

A -dimensional rational polyhedral cone C in is called Gorenstein if , there exists an element such that for any nonzero , and all vertices of the -dimensional convex polytope

belong to
.
The polytope Δ(*C*) is called
the support of C.
Conversely, any -dimensional lattice polytope Λ
determines a -dimensional Gorenstein cone *C*(Λ) as the cone
over Λ with apex at lattice distance 1 from the hyperplane carrying Λ;
obviously Δ(*C*(Λ)) = Λ.
For any , we define the degree of m as .

A Gorenstein cone C is called reflexive if the dual cone

is also Gorenstein, i.e., there exists such that for all , and all vertices of the support belong to . We will call the integer the index of C (or ).

Any nef partition of length r of a reflexive polytope Δ determines a -dimensional dual pair of reflexive Gorenstein cones , of index r by

There are, however, reflexive Gorenstein cones that do not come from nef partitions.

A reflexive Gorenstein cone admits a representation in terms of the points of the underlying reflexive polytope as follows. Given a point , the corresponding point is given as

where ϕ_{l} is the support function defined above.
To see that the two descriptions of are equivalent, note
that both correspond to a cone whose support has vertices

where {*e*_{i}} is the standard basis of , *i*(*k*) is the number
such that and 0_{N} is the origin in the N-lattice.

The Hodge numbers of a Calabi-Yau manifold X defined by means of a nef partition depend only on the structure of the corresponding reflexive Gorenstein cone in a manner described in math/0103214 or alg-geom/9509009. The corresponding formulas rely heavily on the counting of lattice points. For any lattice polytope Λ let us denote by the number of lattice points of Λ and by the number of lattice points in the interior of Λ. It can be shown that

is a polynomial of degree ;
*S*_{Λ}(*t*) is called the Ehrhart polynomial of Λ.
Similarly one can define a polynomial

In terms of a Gorenstein cone C over Λ, with underlying lattice *M*_{C},
S and T can be written as

The two polynomials satisfy a relation which is a consequence of Serre duality,

which provides a stringent test on any results involving lattice point counting.
For the computation of Hodge numbers, the S- and T- polynomials for all the
faces of *C*(Δ) as well as a polynomial called *B*, which is related
to the poset structure of *C*(Δ), are required.

## Standard output

In this subsection we will explain in detail how to interpret the output of nef.x when called without any options.

The standard output slightly depends on whether the reflexive polytope is input as a combined weight system or as a collection of points. If the polytope was entered as a collection of points, the first line of the output takes the following form:

M:# # N:# # codim=# #part=#

Note that the input polytope is interpreted as unless the option -N is used, while any output of a polytope in matrix format refers to its dual except for the option -y. If the input is a CWS, the line starts with the CWS repeated before the symbol M.

# M:# # N:# # codim=# #part=#

where the first # stands for the sequence of numbers describing the CWS. The two numbers # after M correspond to the numbers of lattice points and vertices of and the numbers # after N correspond to the numbers of lattice points and vertices of , respectively. The number r in codim=r is the length of the nef partition, i.e. the codimension of the corresponding Calabi-Yau complete intersection. The default value is 2, otherwise it is specified by the option -c*. The number n in #part=n is the number of all the nef partitions that nef.x has found, up to symmetries of the underlying lattice. If the symmetries of the underlying lattice should not be taken into account, use the option -s.

The subsequent lines contain the information about the various nef partitions. Note that the standard output suppresses the output of nef partitions which are equivalent under symmetries of the CWS. If the codimension is 2 the output line containing the information on a particular nef partition takes the following form:

H:# [#] P:# V:# # #sec #cpu

The numbers # after H: are the Hodge numbers , where d is the dimension of the Calabi-Yau manifold X.

The number $ in the square brackets [#] is the Euler number of X. If for some the Calabi-Yau manifold factorizes. See the option -D for this case. In any case, the full Hodge diamond is displayed with the option -H.

The number # after P: is a counter specifying the nef partition. It runs from 0 to n - 1. Note that nef partitions corresponding to direct products and projections to nef partitions of lower length are omitted by default. To display them use the options -D, -Q for direct products and -P for projections.

The sequence of numbers # separated by a single space after V: corresponds to the vertices that belong to the first part *V*_{0} of the
nef partition. Note that the vertices are counted starting from
0. These numbers only make sense if the options -n, -Lv or -Lp are used. The vertices that belong to
the second part <maht>V_1</math> of the nef partition are not displayed, since
they are simply the remaining ones. If the polytope entered also has points that are not vertices and if the option -Lp is used, then
the second sequence of numbers # that is separated from the
first sequence by two spaces corresponds to the non-vertex points that
belong to the first part *V*_{0}. For representations of the nef
partition in terms of the Gorenstein cone see the option -g*.

The number # before sec indicates the time that was needed to compute this partition. The number # before cpu indicates the number of CPU seconds that were needed to compute the Hodge numbers. For determining the nef partitions without computing the Hodge numbers see the option -p.

If the length r is bigger than 2 the lines containing the information about the various nef partitions take the following form:

H:# [#] P:# V0:# # V1:# # ... V(r-2):# # #sec #cpu

Now, there are r - 1 expressions of the form Vi:# #, where
i runs from 0 to r - 2 each representing a part *V*_{i} of the nef
partition. The points and vertices in each *V*_{i} are listed in the
same order as in the codimension two case.

The final line of the output always takes the following form:

np=# d:# p:# #sec #cpu

The numbers # after d:, p:, np= are the numbers of nef partitions which are direct products, projections, and neither of the two, respectively. The total of the three numbers adds up to n, the total number of nef partitions as indicated in the first line after #part=.

The following example illustrates the standard output of nef.x. We consider complete intersections of codimension 2 in discussed in arXiv:0704.0449[hep-th ] . Let be the standard basis of . We define the polytope by the vertices given by

*v*_{0} = *e*_{1},*v*_{1} = *e*_{2},*v*_{2} = − *e*_{1} − *e*_{2},*v*_{3} = *e*_{3},*v*_{4} = − *e*_{3},*v*_{5} = *e*_{4},*v*_{6} = *e*_{5},*v*_{7} = − *e*_{4} − *e*_{5}.

By elementary toric geometry, we see that and the combined weight system can be read off from the linear relations

*v*_{0} + *v*_{1} + *v*_{2} = 0,*v*_{3} + *v*_{4} = 0,*v*_{5} + *v*_{6} + *v*_{7} = 0.

First, we enter the polytope by giving this combined weight system

palp$ nef.x Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #colums' (= `PolyDim #Points' or `#Points PolyDim'): 3 1 1 1 0 0 0 0 0 2 0 0 0 1 1 0 0 0 3 0 0 0 0 0 1 1 1 3 1 1 1 0 0 0 0 0 2 0 0 0 1 1 0 0 0 3 0 0 0 0 0 1 1 1 M:300 18 N:9 8 codim=2 #part=15 H:19 19 [0] P:0 V:2 4 6 7 1sec 0cpu H:9 27 [-36] P:2 V:3 4 6 7 1sec 0cpu H:3 51 [-96] P:3 V:3 5 6 7 1sec 1cpu H:3 75 [-144] P:4 V:3 6 7 1sec 0cpu H:3 51 [-96] P:6 V:4 5 6 7 2sec 1cpu H:3 51 [-96] P:7 V:4 5 6 1sec 1cpu H:6 51 [-90] P:8 V:4 6 7 1sec 1cpu H:3 75 [-144] P:9 V:4 6 1sec 1cpu H:3 60 [-114] P:10 V:5 6 7 2sec 1cpu H:3 69 [-132] P:11 V:5 6 1sec 1cpu H:3 75 [-144] P:12 V:6 7 1sec 0cpu np=11 d:2 p:2 0sec 0cpu

Equivalently, we can use the option -N and enter the points of
the polytope Δ^{ * } of the normal fan of
:

palp$ nef.x -N Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #colums' (= `PolyDim #Points' or `#Points PolyDim'): 5 8 Type the 40 coordinates as dim=5 lines with #pts=8 colums: 1 0 -1 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 1 -1 M:300 18 N:9 8 codim=2 #part=15 H:3 51 [-96] P:0 V:2 3 4 7 1sec 1cpu H:3 51 [-96] P:1 V:2 4 6 7 2sec 1cpu H:3 60 [-114] P:2 V:2 4 7 2sec 1cpu H:3 51 [-96] P:3 V:2 6 7 1sec 1cpu H:3 69 [-132] P:4 V:2 7 1sec 1cpu H:9 27 [-36] P:5 V:3 4 6 7 1sec 0cpu H:3 75 [-144] P:6 V:3 4 7 0sec 0cpu H:19 19 [0] P:8 V:4 5 6 7 1sec 0cpu H:6 51 [-90] P:9 V:4 6 7 1sec 1cpu H:3 75 [-144] P:10 V:4 7 1sec 0cpu H:3 75 [-144] P:13 V:6 7 1sec 1cpu np=11 d:2 p:2 0sec 0cpu

Note that both the points and the nef partitions are given in different orders.

The polytope has 9 points, 8 vertices and the interior point, while the dual polytope has 300 points, 18 of which are vertices. The codimension is 2 and there are 15 nef partitions. There are 11 nef partitions listed, furthermore there are 2 nef partitions which are direct products, and 2 which are projections. According to the output the nef partitions e.g. 0 and 8 are given as follows (with the Hodge numbers and the Euler number of the corresponding Calabi-Yau 3-fold X):

## Global parameters and limitations

If the dimension of the polytope or the codimension of the nef partition are large, certain global variables in the header files Global.h and Nef.h may need to be modified. This depends very much on the problem to be treated by nef.x as well as on the CPU and the operating system of the computer nef.x is running on. Here we give a particularly nasty example:

palp$ nef.x -Lp -N -c6 -P Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 7 9 Please increase POLY_Dmax to at least 12 = 7 + 6 - 1 (nef.x requires POLY_Dmax >= dim N + codim - 1)

This means that in Global.h we need to set POLY_Dmax to at least 12:

#define POLY_Dmax 12 /* max dim of polytope */

After recompiling PALP we get further but not far enough:

palp$ ./nef.x -Lp -N -c6 -P Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 7 9 Type the 63 coordinates as dim=7 lines with #pts=9 columns: 1 0 0 0 0 -1 0 0 -1 0 1 0 0 0 -1 0 0 -1 0 0 1 0 0 -1 0 0 -1 0 0 0 1 0 -1 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 0 1 -1 M:5214 12 N:10 9 codim=6 #part=1 7 10 Points of Poly in N-Lattice: 1 0 0 0 0 -1 0 0 -1 0 0 1 0 0 0 -1 0 0 -1 0 0 0 1 0 0 -1 0 0 -1 0 0 0 0 1 0 -1 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 0 0 1 -1 0 -------------------------------------------------- 1 1 1 1 1 1 0 0 0 d=6 codim=2 1 1 1 0 0 0 1 1 1 d=6 codim=2 nef.x: Vertex.c:613: Finish_Find_Equations: Assertion `_V->nv<64' failed. Aborted

This can be remedied by adjusting the global variable VERT_Nmax in Global.h as follows (it should not be too large):

#define VERT_Nmax 128 /* !! use optimal value !! */

After recompilation it works for a while. Then the following error occurs

Unable to alloc space for _BL

This means that the program has run out of memory.

## Help screen

The help screen for nef.x is:

palp$ ./nef.x -h This is './nef.x': calculate Hodge numbers of nef-partitions Usage: ./nef.x <Options> Options: -h prints this information -f or - use as filter; otherwise parameters denote I/O files -N input is in N-lattice (default is M) -H gives full list of Hodge numbers -Lv prints L vector of Vertices (in N-lattice) -Lp prints L vector of Points (in N-lattice) -p prints only partitions, no Hodge numbers -D calculates also direct products -P calculates also projections -t full time info -cCODIM codimension (default = 2) -Fcodim fibrations up to codim (default = 2) -y prints poly/CWS in M lattice if it has nef-partitions -S information about #points calculated in S-Poly -T checks Serre-duality -s don't remove symmetric nef-partitions -n prints polytope only if it has nef-partitions -v prints vertices and #points of input polytope in one line; with -u, -l the output is limited by #points: -uPOINTS ... upper limit of #points (default = POINT_Nmax) -lPOINTS ... lower limit of #points (default = 0) -m starts with [d w1 w2 ... wk d=d_1 d_2 (Minkowski sum) -R prints vertices of input if not reflexive -V prints vertices of N-lattice polytope -Q only direct products (up to lattice Quotient) -gNUMBER prints points of Gorenstein polytope in N-lattice -dNUMBER prints points of Gorenstein polytope in M-lattice if NUMBER = 0 ... no 0/1 info if NUMBER = 1 ... no redundant 0/1 info (=default) if NUMBER = 2 ... full 0/1 info -G Gorenstein cone: input <-> support polytope

## The options in detail

We will explain all the options of nef.x in the order of their appearance in the help screen. Here is a rough guide in terms of specific topics:

- Polytope structure: -N, -Lv, -Lp, -v, -R, -V
- Input control: -N, -c*, -m
- Structure of nef partitions: -D, -p, -P, -s, -m
- Hodge numbers: -H, -t, -S, -T
- CWS: -N , -Lv, -Lp, -m
- Fibrations: -F*
- Gorenstein cone: -g*, -d*, -S, -T, -G
- Diagnostics: -t, -S, -T
- Polytope statistics: -y, -n, -v, -R

### -h

This option prints the help screen.

### -f or -

This option switches off the prompt for the input data. This is useful for building pipelines.

### -N

The option -N interprets the input polytope in the N-lattice instead of the M-lattice.

The following example of a complete intersection of degree (2,2) in illustrates the difference. In order to point out the difference we display the points in the two lattices with the option -Lv.

palp$ nef.x -Lv Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #colums' (= `PolyDim #Points' or `#Points PolyDim'): 3 4 Type the 12 coordinates as dim=3 lines with #pts=4 colums: -1 0 0 1 -1 0 1 0 -1 1 0 0 M:5 4 N:35 4 codim=2 #part=0 3 4 Vertices in N-lattice: -1 -1 -1 3 -1 -1 3 -1 -1 3 -1 -1 -------------------- 1 1 1 1 d=4 codim=0 np=0 d:0 p:0 0sec 0cpu

Without the option -N, the output polytope with 35 points and no nef partition is the dual of the input polytope.

palp$ nef.x -Lv -N Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #colums' (= `PolyDim #Points' or `#Points PolyDim'): 3 4 Type the 12 coordinates as dim=3 lines with #pts=4 colums: -1 0 0 1 -1 0 1 0 -1 1 0 0 M:35 4 N:5 4 codim=2 #part=2 3 4 Vertices in N-lattice: -1 0 0 1 -1 0 1 0 -1 1 0 0 -------------------- 1 1 1 1 d=4 codim=0 H:[0] P:0 V:2 3 (2 2) 0sec 0cpu np=1 d:0 p:1 0sec 0cpu

With the option -N, the output polytope is the same as input polytope with 4 points and the expected nef partition corresponding to the complete intersection of degree (2,2) in . Note that the order of the points in the output is the same as in the input. This last feature is the main advantage of the option -N. The reason is that the basis chosen does not respect the order given by the combined weight system that was entered. This can be extremely inconvenient at times. The option -N provides a way to work around this issue: first use the option -Lv to obtain the vertices for a given CWS. Then reorder them so that the basis of linear relations complies with the input and enter the reshuffled vertices into nef.x using the option -N. This will force the linear relations chosen by nef.x to be the same as the CWS.

To see this we consider the example used in the description of the standard output, the complete intersections of codimension 2 in discussed in arXiv:0704.0449[hep-th].

palp$ nef.x -Lv Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #colums' (= `PolyDim #Points' or `#Points PolyDim'): 3 1 1 1 0 0 0 0 0 2 0 0 0 1 1 0 0 0 3 0 0 0 0 0 1 1 1 3 1 1 1 0 0 0 0 0 2 0 0 0 1 1 0 0 0 3 0 0 0 0 0 1 1 1 M:300 18 N:9 8 codim=2 #part=15 5 8 Vertices in N-lattice: 0 0 0 0 1 0 -1 0 0 0 1 0 0 0 -1 0 0 0 0 1 0 0 0 -1 -1 0 0 0 0 1 0 0 -1 1 0 0 0 0 0 0 ---------------------------------------- 1 1 0 0 0 1 0 0 d=3 codim=3 0 0 1 0 1 0 1 0 d=3 codim=3 0 0 0 1 0 0 0 1 d=2 codim=4 H:19 19 [0] P:0 V:2 4 6 7 (0 3) (3 0) (1 1) 1sec 0cpu H:9 27 [-36] P:2 V:3 4 6 7 (0 3) (2 1) (2 0) 0sec 0cpu H:3 51 [-96] P:3 V:3 5 6 7 (1 2) (1 2) (2 0) 1sec 0cpu H:3 75 [-144] P:4 V:3 6 7 (0 3) (1 2) (2 0) 0sec 0cpu H:3 51 [-96] P:6 V:4 5 6 7 (1 2) (2 1) (1 1) 2sec 1cpu H:3 51 [-96] P:7 V:4 5 6 (1 2) (2 1) (0 2) 1sec 0cpu H:6 51 [-90] P:8 V:4 6 7 (0 3) (2 1) (1 1) 1sec 0cpu H:3 75 [-144] P:9 V:4 6 (0 3) (2 1) (0 2) 0sec 0cpu H:3 60 [-114] P:10 V:5 6 7 (1 2) (1 2) (1 1) 2sec 1cpu H:3 69 [-132] P:11 V:5 6 (1 2) (1 2) (0 2) 1sec 0cpu H:3 75 [-144] P:12 V:6 7 (0 3) (1 2) (1 1) 0sec 0cpu np=11 d:2 p:2 0sec 0cpu

Note that the basis chosen does not respect the order given by the combined weight system that was entered. E.g. the weight vector 2 0 0 0 1 1 0 0 0 has changed to the linear relation 0 0 0 1 0 0 0 1 d=2 where the 0's and 1's are in a different order. This can be overcome using the option -N. We choose a basis for the lattice such that the vertices of the polytope satisfy the desired combined weight system 3 1 1 1 0 0 0 0 0 2 0 0 0 1 1 0 0 0 3 0 0 0 0 0 1 1 1:

palp$ nef.x -N -Lv Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #colums' (= `PolyDim #Points' or `#Points PolyDim'): 5 8 Type the 40 coordinates as dim=5 lines with #pts=8 colums: 1 0 -1 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 1 -1 M:300 18 N:9 8 codim=2 #part=15 5 8 Vertices in N-lattice: 1 0 -1 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 1 -1 ---------------------------------------- 1 1 1 0 0 0 0 0 d=3 codim=3 0 0 0 1 1 0 0 0 d=2 codim=4 0 0 0 0 0 1 1 1 d=3 codim=3 H:3 51 [-96] P:0 V:2 3 4 7 (1 2) (2 0) (1 2) 1sec 0cpu H:3 51 [-96] P:1 V:2 4 6 7 (1 2) (1 1) (2 1) 1sec 1cpu H:3 60 [-114] P:2 V:2 4 7 (1 2) (1 1) (1 2) 2sec 1cpu H:3 51 [-96] P:3 V:2 6 7 (1 2) (0 2) (2 1) 1sec 0cpu H:3 69 [-132] P:4 V:2 7 (1 2) (0 2) (1 2) 0sec 0cpu H:9 27 [-36] P:5 V:3 4 6 7 (0 3) (2 0) (2 1) 1sec 0cpu H:3 75 [-144] P:6 V:3 4 7 (0 3) (2 0) (1 2) 0sec 0cpu H:19 19 [0] P:8 V:4 5 6 7 (0 3) (1 1) (3 0) 1sec 0cpu H:6 51 [-90] P:9 V:4 6 7 (0 3) (1 1) (2 1) 1sec 0cpu H:3 75 [-144] P:10 V:4 7 (0 3) (1 1) (1 2) 0sec 0cpu H:3 75 [-144] P:13 V:6 7 (0 3) (0 2) (2 1) 1sec 0cpu np=11 d:2 p:2 0sec 0cpu

The order of the vertices being unchanged, the linear relations agree with the desired combined weight system.

### -H

The option -H replaces the output lines starting with H: with the full Hodge diamond of the corresponding partition. Note that the information about the nef partitions is omitted. The following example of codimension 2 complete intersections in illustrates this option:

palp$ nef.x -H Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #colums' (= `PolyDim #Points' or `#Points PolyDim'): 7 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 M:1716 7 N:8 7 codim=2 #part=3 h 0 0 h 1 0 h 0 1 h 2 0 h 1 1 h 0 2 h 3 0 h 2 1 h 1 2 h 0 3 h 4 0 h 3 1 h 2 2 h 1 3 h 0 4 h 4 1 h 3 2 h 2 3 h 1 4 h 4 2 h 3 3 h 2 4 h 4 3 h 3 4 h 4 4 1 0 0 0 1 0 0 0 0 0 1 237 996 237 1 0 0 0 0 0 1 0 0 0 1 16sec 15cpu h 0 0 h 1 0 h 0 1 h 2 0 h 1 1 h 0 2 h 3 0 h 2 1 h 1 2 h 0 3 h 4 0 h 3 1 h 2 2 h 1 3 h 0 4 h 4 1 h 3 2 h 2 3 h 1 4 h 4 2 h 3 3 h 2 4 h 4 3 h 3 4 h 4 4 1 0 0 0 1 0 0 0 0 0 1 356 1472 356 1 0 0 0 0 0 1 0 0 0 1 42sec 41cpu np=2 d:0 p:1 0sec 0cpu

### -Lv

The option -Lv prints the vertices of and the non-negative linear relations among them in addition to the standard output. If only the vertices should be printed use the option -V. The output takes the following form: The part before the dashed line reads:

D n Vertices in N-lattice: # # ... # # . . ... . . . . ... . . # # ... # #

The first line means that %the N-lattice polytope
Δ^{ * } has dimension D
and is given by n vertices which are the columns of the subsequent
array of numbers #.

Below the dashed line the non-negative
linear relations among these vertices are indicated as follows:
Let denote the n vertices corresponding to the
n columns above the dashed line.
Any IP simplex with vertices in
determines a linear relation
,
with *l*_{i} that are positive for the vertices of the IP simplex and 0
otherwise.
It results in
an output line of the form

l_0 l_1 ... l_{n-1} d=l codim=c

where is the degree of the linear relation and c is the codimension of the IP simplex. In other words, these lines give the set of generators of the cone of non-negative linear relations within the (n-D)-dimensional vector space of linear relations among the vertices. This set is completely fixed by the order of the vertices, and the conditions that each vector, i.e. each linear relation, is positive and primitive.

The information contained in these lines can be very useful in conjunction with the option -F*. To suppress them see the option -V.

Besides the standard output the degrees of the nef
partition with respect to the linear relations are inserted in the
output lines containing the information about the nef
partitions as follows. Consider a nef partition of length r defined by r collections of vertices such that every vertex is a member of some collection *V*_{j}. The (multi)degree of the nef partition with respect to the linear relation is the vector where .
Note that , the degree of the linear relation. The degrees are the degrees of the polynomials defining the complete intersection. If the codimension is 2 the output lines describing the nef partitions take the following form

H:# [#] P:# V:# # (d10 d11) ... (dn0 dn1) #sec #cpu

or if the codimension r is bigger than 2

H:# [#] P:# V0:# # V1:# # ... V(r-2):# # (d10 ... d1(r-1)) ... (dn0 ... dn(r-1)) #sec #cpu

The additional data is (d10 d11) ... (dn0 dn1) and (d10... d1(r-1)) ... (dn0 ... dn(r-1)), respectively, where n is the number of linear relations. If are the degrees with respect to the i-th linear relation, then .

The following example of a codimension 2 complete intersection taken from arXiv:hep-th/0410018v2 illustrates this option

palp$ nef.x -Lv Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #colums' (= `PolyDim #Points' or `#Points PolyDim'): 5 1 1 1 1 1 0 0 4 0 0 0 1 1 1 1 5 1 1 1 1 1 0 0 4 0 0 0 1 1 1 1 M:378 12 N:8 7 codim=2 #part=8 5 7 Vertices in N-lattice: 0 -1 0 1 0 0 0 0 -1 1 0 0 0 0 -1 0 0 0 0 0 1 -1 1 0 0 1 0 0 -1 1 0 0 0 1 0 ----------------------------------- 1 1 1 1 0 0 1 d=5 codim=1 1 0 0 0 1 1 1 d=4 codim=2 H:2 64 [-124] P:0 V:0 6 (2 3) (2 2) 1sec 0cpu H:2 64 [-124] P:1 V:0 1 6 (3 2) (2 2) 1sec 0cpu H:2 74 [-144] P:2 V:2 3 5 (2 3) (1 3) 1sec 0cpu H:2 64 [-124] P:3 V:3 5 6 (2 3) (2 2) 1sec 0cpu H:2 86 [-168] P:4 V:3 5 (1 4) (1 3) 1sec 1cpu H:2 74 [-144] P:5 V:3 6 (2 3) (1 3) 1sec 0cpu np=6 d:0 p:2 0sec 0cpu

From the output we deduce that the 7 vertices of the 5-dimensional polytope satisfy the following linear relations:

v_0 + v_1 + v_2 + v_3 + v_6 = 0,\quad v_0 + v_4 + v_5 + v_6 = 0.

The first of these linear relations has degree 5, the second has degree 4. The corresponding IP simplices have codimension 1 and 2, respectively.

### -Lp

The option -Lp prints all the points of the N-lattice polytope and the
linear relations among them, including those that are not vertices. The output has the same structure as for
the option -Lv. The points are ordered such that first the
vertices are listed, then the points which are not vertices and
finally the origin *p*_{N − 1}. Note that there will be additional
linear relations including
the points which are neither vertices nor the origin. The following example of a
codimension 2 complete intersection taken from hep-th/0410018
illustrates this option:

$ ./nef.x -Lp Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 5 1 1 1 1 1 0 0 10 2 2 2 2 0 1 1 5 1 1 1 1 1 0 0 10 2 2 2 2 0 1 1 M:378 6 N:8 6 codim=2 #part=4 5 8 Points of Poly in N-Lattice: -1 0 0 0 1 0 0 0 -1 0 1 0 0 0 0 0 -1 0 0 1 0 0 0 0 -1 2 0 0 0 0 1 0 -1 1 0 0 0 1 1 0 ---------------------------------------- 2 1 2 2 2 1 0 d=10 codim=0 1 0 1 1 1 0 1 d=5 codim=1 H:2 86 [-168] P:0 V:1 5 6 (2 8) (1 4) 2sec 2cpu H:2 68 [-132] P:1 V:2 3 4 (6 4) (3 2) 1sec 0cpu H:2 68 [-132] P:2 V:3 4 (4 6) (2 3) 1sec 0cpu np=3 d:0 p:1 0sec 0cpu

The last two points are not vertices. There is one more linear
relation including the point *p*_{6}.

Further example: Complete intersection Calabi-Yau fourfold of codimension two discussed in arXiv:0912.3524. Important: in Global.h set POLY_Dmax=7 or higher and recompile! See Global parameters and limitations.

palp$ nef.x -Lp Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 6 3 2 1 0 0 0 0 0 0 0 0 13 6 4 0 1 0 0 0 0 0 1 1 7 3 2 0 0 1 0 0 0 0 1 0 8 3 2 0 0 0 1 0 0 1 1 0 15 6 4 0 0 0 0 1 1 1 1 1 6 3 2 1 0 0 0 0 0 0 0 0 13 6 4 0 1 0 0 0 0 0 1 1 7 3 2 0 0 1 0 0 0 0 1 0 8 3 2 0 0 0 1 0 0 1 1 0 15 6 4 0 0 0 0 1 1 1 1 1 M:4738 39 N:15 11 codim=2 #part=11 6 15 Points of Poly in N-Lattice: 0 0 -2 3 0 0 0 0 0 0 0 -1 2 1 0 0 2 -1 1 0 0 0 1 1 1 2 0 1 1 0 0 1 -1 1 0 0 1 1 1 1 2 0 1 1 0 0 1 -1 1 1 0 0 1 0 1 2 0 1 1 0 0 -1 0 0 0 1 0 -1 -1 0 -1 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 -1 0 0 0 0 --------------------------------------------------------------------------- 1 1 6 4 1 1 1 0 0 0 0 0 0 0 d=15 codim=0 1 0 6 4 0 1 0 0 0 0 1 0 0 0 d=13 codim=2 0 0 3 2 1 1 0 0 1 0 0 0 0 0 d=8 codim=2 0 0 3 2 0 1 0 1 0 0 0 0 0 0 d=7 codim=3 0 0 3 2 0 0 0 0 0 1 0 0 0 0 d=6 codim=4 0 0 1 1 0 0 0 0 0 0 0 1 0 0 d=3 codim=4 0 0 2 1 0 0 0 0 0 0 0 0 0 1 d=4 codim=4 0 0 1 0 0 0 0 0 0 0 0 0 1 0 d=2 codim=5 H:8 0 1113 [6774] P:0 V:0 4 7 (2 13) (1 12) (1 7) (1 6) (0 6) (0 3) (0 4) (0 2) 282sec 281cpu H:5 0 1115 [6768] P:1 V:0 2 3 5 9 11 12 13 (12 3) (12 1) (6 2) (6 1) (6 0) (3 0) (4 0) (2 0) 162sec 162cpu H:5 0 1115 [6768] P:2 V:1 5 6 8 (3 12) (1 12) (2 6) (1 6) (0 6) (0 3) (0 4) (0 2) 159sec 158cpu H:8 0 1113 [6774] P:3 V:1 6 7 8 10 (2 13) (1 12) (1 7) (1 6) (0 6) (0 3) (0 4) (0 2) 228sec 216cpu H:8 0 1113 [6774] P:4 V:0 1 7 8 (2 13) (1 12) (1 7) (1 6) (0 6) (0 3) (0 4) (0 2) 236sec 234cpu H:5 0 1115 [6768] P:5 V:0 1 4 7 8 (3 12) (1 12) (2 6) (1 6) (0 6) (0 3) (0 4) (0 2) 183sec 182cpu H:5 0 1115 [6768] P:6 V:4 5 6 (3 12) (1 12) (2 6) (1 6) (0 6) (0 3) (0 4) (0 2) 221sec 220cpu H:8 0 1113 [6774] P:7 V:4 6 7 10 (2 13) (1 12) (1 7) (1 6) (0 6) (0 3) (0 4) (0 2) 271sec 265cpu H:8 0 1113 [6774] P:9 V:5 6 (2 13) (1 12) (1 7) (1 6) (0 6) (0 3) (0 4) (0 2) 282sec 281cpu H:7 0 958 [5838] P:10 V:6 8 (1 14) (0 13) (1 7) (0 7) (0 6) (0 3) (0 4) (0 2) 272sec -4023cpu np=10 d:0 p:1 272sec -4023cpu

The last four points are not vertices. There are three more linear relations including those points. Compare this to the output of the option -Lv:

palp$ nef.x -Lv Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 6 3 2 1 0 0 0 0 0 0 0 0 13 6 4 0 1 0 0 0 0 0 1 1 7 3 2 0 0 1 0 0 0 0 1 0 8 3 2 0 0 0 1 0 0 1 1 0 15 6 4 0 0 0 0 1 1 1 1 1 6 3 2 1 0 0 0 0 0 0 0 0 13 6 4 0 1 0 0 0 0 0 1 1 7 3 2 0 0 1 0 0 0 0 1 0 8 3 2 0 0 0 1 0 0 1 1 0 15 6 4 0 0 0 0 1 1 1 1 1 M:4738 39 N:15 11 codim=2 #part=11 6 11 Vertices in N-lattice: 0 0 -2 3 0 0 0 0 0 0 0 0 2 -1 1 0 0 0 1 1 1 2 0 1 -1 1 0 0 1 1 1 1 2 0 1 -1 1 1 0 0 1 0 1 2 0 -1 0 0 0 1 0 -1 -1 0 -1 1 -1 0 0 0 0 0 0 0 0 -1 ------------------------------------------------------- 1 1 6 4 1 1 1 0 0 0 0 d=15 codim=0 1 0 6 4 0 1 0 0 0 0 1 d=13 codim=2 0 0 3 2 1 1 0 0 1 0 0 d=8 codim=2 0 0 3 2 0 1 0 1 0 0 0 d=7 codim=3 0 0 3 2 0 0 0 0 0 1 0 d=6 codim=4 H:8 0 1113 [6774] P:0 V:0 4 7 (2 13) (1 12) (1 7) (1 6) (0 6) 284sec 283cpu H:5 0 1115 [6768] P:1 V:0 2 3 5 9 11 12 13 (12 3) (12 1) (6 2) (6 1) (6 0) 163sec 163cpu H:5 0 1115 [6768] P:2 V:1 5 6 8 (3 12) (1 12) (2 6) (1 6) (0 6) 159sec 158cpu H:8 0 1113 [6774] P:3 V:1 6 7 8 10 (2 13) (1 12) (1 7) (1 6) (0 6) 211sec 210cpu H:8 0 1113 [6774] P:4 V:0 1 7 8 (2 13) (1 12) (1 7) (1 6) (0 6) 235sec 234cpu H:5 0 1115 [6768] P:5 V:0 1 4 7 8 (3 12) (1 12) (2 6) (1 6) (0 6) 181sec 180cpu H:5 0 1115 [6768] P:6 V:4 5 6 (3 12) (1 12) (2 6) (1 6) (0 6) 220sec 220cpu H:8 0 1113 [6774] P:7 V:4 6 7 10 (2 13) (1 12) (1 7) (1 6) (0 6) 258sec 257cpu H:8 0 1113 [6774] P:9 V:5 6 (2 13) (1 12) (1 7) (1 6) (0 6) 282sec 281cpu H:7 0 958 [5838] P:10 V:6 8 (1 14) (0 13) (1 7) (0 7) (0 6) 271sec -4024cpu np=10 d:0 p:1 271sec -4024cpu

### -p

The option -p computes the nef partitions without the (time-consuming) calculation of Hodge numbers. As an example we consider the codimension 4 cf. -c* complete intersections in . Note that one must set POLY_Dmax in Global.h to at least 10.

palp$ nef.x -c4 -p Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 8 1 1 1 1 1 1 1 1 8 1 1 1 1 1 1 1 1 M:6435 8 N:9 8 codim=4 #part=5 P:0 V0:2 3 V1:4 5 V2:6 7 0sec 0cpu np=1 d:0 p:4 0sec 0cpu

The Hodge data in the line containing the partition information is omitted, and the computation time is 0. Without the option -p this line would look like this:

H:1 65 [-128] P:0 V0:2 3 V1:4 5 V2:6 7 13127sec 13120cpu

Note the computation time.

Further example: Complete intersection Calabi-Yau fourfold of codimension two discussed in arXiv:0912.3524.
Important: in Global.h set POLY_Dmax=7 or higher and recompile! See Global parameters and limitations.

Input with -p:

palp$ nef.x -p Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 6 3 2 1 0 0 0 0 0 0 0 0 13 6 4 0 1 0 0 0 0 0 1 1 7 3 2 0 0 1 0 0 0 0 1 0 8 3 2 0 0 0 1 0 0 1 1 0 15 6 4 0 0 0 0 1 1 1 1 1 6 3 2 1 0 0 0 0 0 0 0 0 13 6 4 0 1 0 0 0 0 0 1 1 7 3 2 0 0 1 0 0 0 0 1 0 8 3 2 0 0 0 1 0 0 1 1 0 15 6 4 0 0 0 0 1 1 1 1 1 M:4738 39 N:15 11 codim=2 #part=11 P:0 V:0 4 7 0sec 0cpu P:1 V:0 2 3 5 9 11 12 13 0sec 0cpu P:2 V:1 5 6 8 0sec 0cpu P:3 V:1 6 7 8 10 0sec 0cpu P:4 V:0 1 7 8 0sec 0cpu P:5 V:0 1 4 7 8 0sec 0cpu P:6 V:4 5 6 0sec 0cpu P:7 V:4 6 7 10 0sec 0cpu P:9 V:5 6 0sec 0cpu P:10 V:6 8 0sec 0cpu np=10 d:0 p:1 0sec 0cpu

Input without -p (*note the calculation time! (32-bit system)*):

palp$ nef.x Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 6 3 2 1 0 0 0 0 0 0 0 0 13 6 4 0 1 0 0 0 0 0 1 1 7 3 2 0 0 1 0 0 0 0 1 0 8 3 2 0 0 0 1 0 0 1 1 0 15 6 4 0 0 0 0 1 1 1 1 1 6 3 2 1 0 0 0 0 0 0 0 0 13 6 4 0 1 0 0 0 0 0 1 1 7 3 2 0 0 1 0 0 0 0 1 0 8 3 2 0 0 0 1 0 0 1 1 0 15 6 4 0 0 0 0 1 1 1 1 1 M:4738 39 N:15 11 codim=2 #part=11 H:8 0 1113 [6774] P:0 V:0 4 7 247sec 246cpu H:5 0 1115 [6768] P:1 V:0 2 3 5 9 11 12 13 141sec 141cpu H:5 0 1115 [6768] P:2 V:1 5 6 8 136sec 136cpu H:8 0 1113 [6774] P:3 V:1 6 7 8 10 183sec 182cpu H:8 0 1113 [6774] P:4 V:0 1 7 8 203sec 202cpu H:5 0 1115 [6768] P:5 V:0 1 4 7 8 157sec 156cpu H:5 0 1115 [6768] P:6 V:4 5 6 190sec 189cpu H:8 0 1113 [6774] P:7 V:4 6 7 10 226sec 225cpu H:8 0 1113 [6774] P:9 V:5 6 246sec 246cpu H:7 0 958 [5838] P:10 V:6 8 236sec 234cpu np=10 d:0 p:1 236sec 234cpu

### -D

The option -D also prints those nef partitions which are direct products of lower-dimensional nef partitions. If only direct products are to be printed use the option -Q. As an example we consider a codimension 2 complete intersection in :

palp$ nef.x -D 3 1 1 1 0 0 0 3 0 0 0 1 1 1 3 1 1 1 0 0 0 3 0 0 0 1 1 1 M:100 9 N:7 6 codim=2 #part=5 H:4 [0] h1=2 P:0 V:2 3 5 D 0sec 0cpu H:20 [24] P:1 V:3 4 5 0sec 0cpu H:20 [24] P:2 V:3 5 0sec 0cpu H:20 [24] P:3 V:4 5 0sec 0cpu np=3 d:1 p:1 0sec 0cpu

The last three nef partitions each describe a K3 surface. The first one is a . The extra output triggered by -D is:

H:4 [0] h1=2 P:0 V:2 3 5 D 0sec 0cpu

h1=2 indicates that the Hodge number *h*^{1,0}(*T*^{4}) = 2. Furthermore the letter D indicates that the nef partition is a direct product.

Compare this to the output without the option -D where the first nef partition is not shown:

palp$ nef.x 3 1 1 1 0 0 0 3 0 0 0 1 1 1 3 1 1 1 0 0 0 3 0 0 0 1 1 1 M:100 9 N:7 6 codim=2 #part=5 H:20 [24] P:1 V:3 4 5 0sec 0cpu H:20 [24] P:2 V:3 5 0sec 0cpu H:20 [24] P:3 V:4 5 1sec 0cpu np=3 d:1 p:1 0sec 0cpu

### -P

The option -P also prints nef partitions corresponding to projections. Consider for example a complete intersection of codimension 2 in :

palp$ nef.x -P 4 1 1 1 1 4 1 1 1 1 M:35 4 N:5 4 codim=2 #part=2 H:[0] P:0 V:2 3 0sec 0cpu H:[0] P:1 V:3 0sec 0cpu np=1 d:0 p:1 0sec 0cpu

Compared to the output without -P there is one additional line:

H:[0] P:1 V:3 0sec 0cpu

Let denote the vertices of the polytope. The nef partition P:0 is then as follows:

The part *V*_{0} only contains the vertex *v*_{3}. Therefore
the equation of the corresponding divisor *D*_{0,0}
reads *x*_{3} = 0.
A projection π of Δ^{ * } along *v*_{3} yields a reflexive
polytope .
Thus, we are left with a hypersurface .
If there is a nef partition such that the dual nef partition in the M-lattice
has a summand with only one vertex, then DP is displayed in the output.

Further example: A complete intersection of codimension 6 which is reduced to codimension 3 by projections. We use the option -c* to set the codimension and -p to suppress the calculation of the Hodge numbers. Furthermore we list the vertices using the option -Lv:

palp$ nef.x -P -c6 -p -Lv Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 6 1 1 1 1 1 1 0 0 0 6 1 1 1 0 0 0 1 1 1 6 1 1 1 1 1 1 0 0 0 6 1 1 1 0 0 0 1 1 1 M:5214 12 N:10 9 codim=6 #part=1 7 9 Vertices in N-lattice: -1 0 0 1 0 0 0 0 0 -1 0 1 0 0 0 0 0 0 0 -1 0 0 0 1 0 0 0 0 -1 0 0 1 0 0 0 0 -1 1 0 0 0 0 0 0 1 -1 1 0 0 0 0 1 0 0 -1 1 0 0 0 0 0 1 0 --------------------------------------------- 1 1 1 1 1 1 0 0 0 d=6 codim=2 1 0 1 1 0 0 1 1 1 d=6 codim=2 P:0 V0:0 V1:2 V2:3 V3:4 7 V4:5 8 (1 1 1 1 1 1) (1 1 1 1 1 1) 0sec 0cpu np=0 d:0 p:1 0sec 0cpu

The output shows that three elements of the nef partition contain only one vertex:

P:0 V0:0 V1:2 V2:3 V3:4 7 V4:5 8 0sec 0cpu

Therefore the variables associated to the vertices labeled by 0,2 and 3 can be set to zero and we are left with a complete intersection of codimension 3 in .

### -t

The option -t gives detailed information about the calculation times of the Hodge numbers. The Hodge numbers of a Calabi-Yau complete intersection are generated by the so called stringy E-function introduced by Batyrev and Borisov in alg-geom/9509009. The combinatorial construction of the E-function involves the construction of a B-polynomial and an S-polynomial defined in alg-geom/9509009. The option -t returns the accumulated computing times of the respective polynomials. We illustrate this option with the example of complete intersections of codimension 4 in .

palp$ ./nef.x -t -c4 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 8 1 1 1 1 1 1 1 1 8 1 1 1 1 1 1 1 1 M:6435 8 N:9 8 codim=4 #part=5 BEGIN S-Poly 0sec 0cpu BEGIN B-Poly 11564sec 11558cpu BEGIN E-Poly 13126sec 13119cpu H:1 65 [-128] P:0 V0:2 3 V1:4 5 V2:6 7 13126sec 13119cpu np=1 d:0 p:4 0sec 0cpu

This option can be useful for finding at which point in the calculation of the Hodge numbers the program crashes.

Further example: Complete intersection Calabi-Yau fourfold discussed in arXiv:0908.1784.

palp$ nef.x -t 10 3 2 0 1 1 1 1 1 6 3 2 1 0 0 0 0 0 10 3 2 0 1 1 1 1 1 6 3 2 1 0 0 0 0 0 M:2302 15 N:12 8 codim=2 #part=4 BEGIN S-Poly 0sec 0cpu BEGIN B-Poly 61sec 57cpu BEGIN E-Poly 66sec 61cpu H:2 30 308 [1728] P:0 V:4 5 6 7 66sec 61cpu BEGIN S-Poly 0sec 0cpu BEGIN B-Poly 92sec 83cpu BEGIN E-Poly 100sec 91cpu H:5 5 448 [2736] P:1 V:5 6 7 100sec 91cpu BEGIN S-Poly 0sec 0cpu BEGIN B-Poly 152sec 138cpu BEGIN E-Poly 160sec 146cpu H:5 0 567 [3480] P:2 V:6 7 160sec 146cpu np=3 d:0 p:1 0sec 0cpu

### -c*

The option -c* where * is a positive integer r allows to specify the length of the nef partition and hence the codimension of the Calabi-Yau complete intersection. The default value for the codimension is 2. Note that the computation time can take several hours for r=4 or even days for r>4 and PALP may crash because the limits such as the number of vertices etc. set in Global.h may be exceeded. We illustrate this option with complete intersections of codimension 3 in :

palp$ nef.x -c3 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 1 1 1 0 0 0 3 0 0 0 1 1 1 3 1 1 1 0 0 0 3 0 0 0 1 1 1 M:100 9 N:7 6 codim=3 #part=7 H:[0] P:0 V0:1 3 V1:4 5 1sec 1cpu H:[0] P:1 V0:2 3 V1:4 5 1sec 0cpu np=1 d:1 p:5 0sec 0cpu

Also hypersurfaces can be analyzed with nef.x. As an example we consider the quintic hypersurface in :

palp$ nef.x -c1 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 5 1 1 1 1 1 5 1 1 1 1 1 M:126 5 N:6 5 codim=1 #part=1 H:1 101 [-200] P:0 math 0sec 0cpu np=1 d:0 p:0 0sec 0cpu

Compare this to the output of poly.x:

palp$ poly.x Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 5 1 1 1 1 1 5 1 1 1 1 1 M:126 5 N:6 5 H:1,101 [-200]

### -F*

The option -F* yields information about possible toric fibrations of the toric variety associated to the given reflexive lattice polytope. The polytopes associated to the toric fibers are restricted to be reflexive. By considering nef partitions for the given lattice polytope this option also computes possible fibrations of the corresponding complete intersection Calabi-Yau manifolds by lower-dimensional complete intersection Calabi-Yau manifolds. For more details see math/0001106, hep-th/0410018. In practice one should always use the option -F* in conjunction with either -Lv or -Lp. Here * is a non-negative integer s that specifies the maximal codimension s of the fiber polytope. The default value for s is 2. Note that this codimension does not need to coincide with the codimension of the corresponding complete intersection Calabi-Yau fiber. Besides the standard output and the output from the options -Lv or -Lp, the full information about fibration structures is listed below a second dashed line. The output takes the following form:

----------------------------------------------- #fibrations=# _ _ v v ... p p p v cd=# m: # # n: # # . . . . ... . . . . . . . . . . . . . ... . . . . . . . . . . . . . ... . . . . . . . . . v p _ v ... v _ _ p cd=# m: # # n: # #

The number # in #fibrations=# specifies the number of fibrations by reflexive polytopes up to symmetry that have been found. Then each of the subsequent lines corresponds to one of these fibrations. The points of the given polytope are labeled by either v, p or _. This label indicates whether the corresponding point is a vertex (v), a non-vertex point (p) or not a point at all (_) of the fiber polytope. The latter correspond to the directions of the toric base. The non-negative integer # in cd=# specifies the codimension of the fiber polytope. The two positive integers # # after m: specify the numbers of points and vertices of the dual of the fiber polytope, respectively. The two positive integers # # after n: specify the numbers of points and vertices of the fiber polytope, respectively.

We illustrate this option with a complete intersection of codimension 2 with several fibrations. In order to find all fibrations the argument of -F must be set to 3. This is an example where the interpretation of the fibration information depends on the choice of the nef partition.

palp$ echo "12 4 2 2 2 1 1 0 8 4 0 0 0 1 1 2" | nef.x -f -Lp -F3 12 4 2 2 2 1 1 0 8 4 0 0 0 1 1 2 M:371 12 N:10 7 codim=2 #part=5 5 10 Points of Poly in N-Lattice: 0 0 0 1 0 -1 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 -1 4 0 0 0 0 0 1 2 0 0 -1 0 0 1 0 0 0 0 0 -1 2 0 0 0 1 1 1 1 0 -------------------------------------------------- 4 1 2 2 1 2 0 0 0 d=12 codim=0 4 1 0 0 1 0 2 0 0 d=8 codim=2 2 0 1 1 0 1 0 0 1 d=6 codim=1 2 0 0 0 0 0 1 0 1 d=4 codim=3 1 0 0 0 0 0 0 1 0 d=2 codim=4 --------------------------------------------- #fibrations=3 v v _ _ v _ v p p cd=2 m: 35 4 n: 7 4 v _ v v _ v v p v cd=1 m:117 9 n: 8 6 v _ _ _ _ _ v p v cd=3 m: 9 3 n: 5 3 H:4 58 [-108] P:1 V:0 2 (6 6) (4 4) (3 3) (2 2) (1 1) 1sec 0cpu H:3 65 [-124] P:2 V:0 2 3 (8 4) (4 4) (4 2) (2 2) (1 1) 1sec 0cpu H:3 83 [-160] P:3 V:3 5 (4 8) (0 8) (2 4) (0 4) (0 2) 1sec 1cpu np=3 d:0 p:2 0sec 0cpu

There are three fibrations. The fiber polytope of the second
fibration is of codimension 1, hence has dimension 5-1=4. As
usual, we label the vertices and points by
. The vertices labeled with _ are
*v*_{1} and *v*_{4}, which are all in *V*_{1} for all the three nef
partitions. Since we are considering a complete intersection of
codimension 2, the corresponding Calabi-Yau threefold admits a
fibration by K3 surfaces since the fiber has dimension 4-2=2. The
linear relation of codimension 1 and degree 6 does not involve
*v*_{1} and *v*_{4}, hence it describes the fiber polytope. The degrees of
the nef partitions with respect to this linear relation are given in the third parentheses in the lines containing the information of the nef partitions. Hence, the K3 fibers are , , and , respectively. Note that the second fibration is an instance of the situation that a non-vertex point of the polytope becomes a vertex of the fiber polytope. Here, this is the point *p*_{8}.

The fiber polytope of the first fibration is of codimension 2, hence
has dimension 5-2=3. Naively, one would expect that the
corresponding Calabi-Yau threefolds admit elliptic fibrations. This
is indeed true for the first two nef partitions since the vertices
labeled with _ are *v*_{2},*v*_{3}, and *v*_{5}, which are all in
*V*_{1}. Repeating the steps of the second fibration above in this case yields the complete intersection for both nef partitions. After discarding the trivial projection to the first coordinate, they become the hypersurfaces .

For the third nef partition, however, the vertices and points of the
fiber polytope only lie in the part *V*_{1} of the nef partition. Hence, the part *V*_{0} reduces the dimension of the base. The fiber of the corresponding Calabi-Yau threefold is only of
codimension 1 in the 3-dimensional toric fiber, i.e. it is a K3
surface. In fact, the linear relation of codimension 2 and degree
8 involves all points of *V*_{1}, hence it describes the fiber polytope. The degrees of the third nef partition with respect to this linear relation are the second parentheses in the line with P:3. Hence, the K3 fiber is . This phenomenon is further described in hep-th/0410018.

Finally, the fiber polytope of the third fibration is of codimension 3, and hence has dimension 5-3=2. Naively, one would expect that the corresponding Calabi-Yau threefolds do not admit any fibrations since the codimension is also 2 and hence the fibers would be points. This is indeed the case for the first two nef partitions. For the third nef partition, the fiber polytope consists of the points *v*_{0},*v*_{6},*p*_{7}, and *p*_{8}, all of which lie in *V*_{1}. Hence, the fiber of the corresponding Calabi-Yau threefold is only of codimension 1 in the 2-dimensional toric fiber, i.e. it is an elliptic curve. The degrees of the third nef partition with respect to the linear relation of codimension 3 are the fourth parentheses in the line with P:3. Hence, the elliptic curve is .

**Further examples**:

An example is the degree 18 hypersurface in a crepant resolution of the weighted projective space . Since it is a hypersurface, we need to set the codimension to 1 using the option -c*.

palp$ echo "18 9 6 1 1 1" | nef.x -f -Lp -c1 -F 18 9 6 1 1 1 M:376 5 N:10 5 codim=1 #part=1 4 10 Points of Poly in N-Lattice: 0 0 -2 3 0 2 1 -1 0 0 0 3 -1 1 0 1 1 0 1 0 0 -1 0 0 1 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 -------------------------------------------------- 1 1 9 6 1 0 0 0 0 d=18 codim=0 0 0 2 1 0 0 1 0 0 d=4 codim=2 0 0 1 1 0 0 0 1 0 d=3 codim=2 0 0 3 2 0 0 0 0 1 d=6 codim=2 0 0 1 0 0 1 0 0 0 d=2 codim=3 --------------------------------------------- #fibrations=1 _ _ v v _ p p p v cd=2 m: 7 3 n: 7 3 H:2 272 [-540] P:0 (18) (4) (3) (6) (2) 0sec 0cpu np=1 d:0 p:0 0sec 0cpu

There is only one fibration whose fiber polytope has codimension 2. Since the whole polytope has dimension 4, the fiber polytope therefore has dimension 4-2=2, and the dimension of the fiber of the associated toric variety is also 2. Since we are considering a hypersurface, i.e. a complete intersection of codimension 1, the corresponding Calabi-Yau manifold has dimension 4-1=3 and admits a fibration by elliptic curves since the fiber has dimension 2-1=1. We can specify the fiber even more by looking at the entries v, p and _ and comparing them to the linear relations of the same codimension as the fiber polytope above the second dashed line. We observe that the relation 0 0 3 2 0 0 0 0 1 d=6 codim=2 has precisely a zero for each point labelled by a _. Hence the fiber of the toric variety is (a crepant resolution of) the weighted projective space , and the fiber of is a degree 6 curve in this weighted projective space.

The last example is again a hypersurface, the degree 24 hypersurface in the crepant resolution of the weighted projective space .

palp$ echo "24 12 8 2 1 1" | nef.x -f -Lp -c1 -F 24 12 8 2 1 1 M:335 5 N:11 5 codim=1 #part=1 4 11 Points of Poly in N-Lattice: 0 0 -2 3 0 1 2 0 -1 0 0 2 0 -1 1 0 1 1 1 0 0 0 1 2 -1 1 0 1 1 1 0 1 0 -1 1 0 0 1 0 0 0 0 1 0 ------------------------------------------------------- 2 1 12 8 1 0 0 0 0 0 d=24 codim=0 1 0 6 4 0 0 0 0 0 1 d=12 codim=1 0 0 2 1 0 1 0 0 0 0 d=4 codim=2 0 0 3 2 0 0 0 1 0 0 d=6 codim=2 0 0 1 1 0 0 0 0 1 0 d=3 codim=2 0 0 1 0 0 0 1 0 0 0 d=2 codim=3 -------------------------------------------------- #fibrations=2 v _ v v _ p p p p v cd=1 m: 39 4 n: 9 4 _ _ v v _ p p v p _ cd=2 m: 7 3 n: 7 3 H:3 243 [-480] P:0 (24) (12) (4) (6) (3) (2) 0sec 0cpu np=1 d:0 p:0 0sec 0cpu

There are two fibrations, one of codimension 1 and one of codimension 2.

- The same considerations as in the example above show that the latter yields an elliptic fibration of the corresponding Calabi-Yau threefold with the same elliptic fiber.
- The fiber polytope of the first fibration has dimension 4-1=3 and the dimension of the fiber of the associated toric variety is also 3. Since we are considering a complete intersection of codimension 1, the corresponding Calabi-Yau threefold admits a fibration by K3 surfaces since the fiber has dimension 3-1=2. By comparing the points with te labels _ and the linear relations of codimension 1 with a 0 at these points, we see that the fiber is a degree 12 hypersurface in (a crepant resolution of) the weighted projective space .
- Note that the points labelled with _ of the first fibration form a subset of the points labelled with _ of the second fibration. This means that the fiber polytope of the first fibration admits itself a fibration by a reflexive lattice polytope, the fiber being the fiber polytope of the second fibration. Hence the fibrations of the corresponding Calabi-Yau threefold are compatible in the sense that the elliptic fibration factors through the K3 fibration.
- Note that if one had specified the option -F1 instead of -F or -F2, only the first fibration would have been listed.

### -y

Depending on the input the option -y returns the CWS or the vertices of the M-lattice polytope if there is at least one nef partition. In order to trigger the output this nef partition may also be a projection. If there is no nef partition there is no output. Depending on the input the following output is given:

- if there is a nef partition:

- If the input is a CWS, the CWS is returned along with the polytope data.

- If the input is a polytope in the M-lattice or N-lattice (cf. option -N) the M-lattice polytope is returned.

- if there is no nef partition

- If the input is a CWS, the CWS is returned without further information about the polytope.

- If the input is a polytope there is no output.

As an example consider the codimension 2 complete intersection in . If we enter the N-lattice polytope we get the following output:

palp$ nef.x -y -N Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 4 Type the 12 coordinates as dim=3 lines with #pts=4 columns: -1 0 0 1 -1 0 1 0 -1 1 0 0 3 4 Vertices of Poly in M-lattice: M:35 4 N:5 4 codim=2 #part=2 -1 -1 -1 3 -1 -1 3 -1 -1 3 -1 -1

**Further examples**:

Example: Codimension 2 complete intersection in , input is theCWS:

palp$ nef.x -y Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 4 1 1 1 1 4 1 1 1 1 M:35 4 N:5 4 codim=2 #part=2

Example: Codimension 2 complete intersection in , input is the M-lattice polytope:

palp$ nef.x -y Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 4 Type the 12 coordinates as dim=3 lines with #pts=4 columns: -1 -1 -1 3 -1 -1 3 -1 -1 3 -1 -1 3 4 Vertices of Poly in M-lattice: M:35 4 N:5 4 codim=2 #part=2 -1 -1 -1 3 -1 -1 3 -1 -1 3 -1 -1

Example without a nef partition, input is the CWS:

palp$ nef.x -y Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 6 3 2 1 0 0 6 3 0 0 2 1 6 3 2 1 0 0 6 3 0 0 2 1

Example without a nef partition, input is the N-lattice polytope:

palp$ nef.x -y -N Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 5 Type the 15 coordinates as dim=3 lines with #pts=5 columns: 0 0 -1 2 0 -2 3 3 0 0 -1 1 1 1 1 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'):

The same holds if an M-lattice polytope is entered.

### -S

The option -S gives information about the number of points in the reflexive Gorenstein cone and its dual (cf. options -g* and -d*) for each nef partition which is not a direct product or a projection. It displays the numbers of lattice points and of interior lattice points in degrees , where is the dimension of the Gorenstein cone C, and the analogous data for the dual cone . These data enter the calculation of the (stringy) Hodge numbers via the S-polynomial (hence the name -S) as described in Nef partitions and Gorenstein cones. The output takes the following form. After the first line of the standard output, there is a part referring to the polytope :

#points in largest cone: layer: 1 #p: l1 #ip: 0 ... . ... . ... . layer: . #p: . #ip: . ... . ... . ... . layer: k #p: lk #ip: l*k

where , .
Subsequently there is a second part referring to the polytope Δ(*C*).

#points in largest cone: layer: 1 #p: l1 #ip: 0 ... . ... . ... . layer: . #p: . #ip: . ... . ... . ... . layer: k #p: lk #ip: l*k

where , . Then the rest of the standard output concerning the nef partitions follows.

The following example illustrates this option. We consider a complete intersection of codimension 2 in :

palp$ nef.x -S Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 4 1 1 1 1 4 1 1 1 1 M:35 4 N:5 4 codim=2 #part=2 #points in largest cone: layer: 1 #p: 6 #ip: 0 layer: 2 #p: 21 #ip: 1 layer: 3 #p: 56 #ip: 6 #points in largest cone: layer: 1 #p: 20 #ip: 0 layer: 2 #p: 105 #ip: 1 layer: 3 #p: 336 #ip: 20 H:[0] P:0 V:2 3 0sec 0cpu np=1 d:0 p:1 0sec 0cpu

One of the two nef partitions is a projection and is not analyzed. The
output for the remaining nef partition has two blocks: The first block
counts the numbers of points (after #p:) and points in the
relative interior (after #ip:) of the Gorenstein cone
at degrees *k* = 1,2,3. Hence

One can check that the number of points at degree *k* = 1 indeed coincides with the number of points in the output of the option -g2.

The second block gives the same information for the dual Gorenstein cone . Hence

The output of the option -d2 coincides with the number of points at degree *k* = 1.

### -T

The option -T turns on an explicit check of the Serre duality relation (cf. Nef partitions and Gorenstein cones relating the S-- and T--polynomials. Normally the program actually uses that relation to avoid point counting beyond degree , but with -T the counting goes up to degree and an error message is given if Serre duality is violated. This can be useful if one suspects that the program gives wrong Hodge numbers, for example because of numerical overflows. If nothing goes wrong, the only effect is a significantly increased computation time. The best way to illustrate this option is by combining it with -S. We consider the same example as for -S.

palp$ nef.x -S -T Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #colums' (= `PolyDim #Points' or `#Points PolyDim'): 4 1 1 1 1 4 1 1 1 1 M:35 4 N:5 4 codim=2 #part=2 #points in largest cone: layer: 1 #p: 6 #ip: 0 layer: 2 #p: 21 #ip: 1 layer: 3 #p: 56 #ip: 6 layer: 4 #p: 125 #ip: 21 layer: 5 #p: 246 #ip: 56 #points in largest cone: layer: 1 #p: 20 #ip: 0 layer: 2 #p: 105 #ip: 1 layer: 3 #p: 336 #ip: 20 layer: 4 #p: 825 #ip: 105 layer: 5 #p: 1716 #ip: 336 H:[0] P:0 V:2 3 0sec 0cpu np=1 d:0 p:1 0sec 0cpu

Note how now the point counting proceeds up to degree 5. With these data we can compute the Ehrhart polynomial

Since it has degree at most , we find

Similarly

and it is clear that the Serre duality relation is satisfied. A similar check can be performed for with the data from the second block.

### -s

The option -s includes all nef partitions in the output, not just one representative for each class of nef partitions that are equivalent under symmetries of the CWS. Note that this option does not print all possible nef partitions as those corresponding to projections (cf. option -P) or direct products (cf. option -D) are omitted. The example we consider is a complete intersection of codimension 2 in . We add the option -Lv in order to print the vertices and the CWS.

palp$ nef.x -s -Lv Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 1 1 1 0 0 0 3 0 0 0 1 1 1 3 1 1 1 0 0 0 3 0 0 0 1 1 1 M:100 9 N:7 6 codim=2 #part=31 4 6 Vertices in N-lattice: 0 0 0 1 0 -1 0 0 1 0 0 -1 -1 0 0 0 1 0 -1 1 0 0 0 0 ------------------------------ 1 1 0 0 1 0 d=3 codim=2 0 0 1 1 0 1 d=3 codim=2 H:20 [24] P:2 V:4 5 (1 2) (1 2) 0sec 0cpu H:20 [24] P:4 V:0 5 (1 2) (1 2) 0sec 0cpu H:20 [24] P:5 V:0 4 (2 1) (0 3) 0sec 0cpu H:20 [24] P:6 V:0 4 5 (2 1) (1 2) 0sec 0cpu H:20 [24] P:8 V:1 5 (1 2) (1 2) 1sec 0cpu H:20 [24] P:9 V:1 4 (2 1) (0 3) 0sec 0cpu H:20 [24] P:10 V:1 4 5 (2 1) (1 2) 0sec 0cpu H:20 [24] P:11 V:0 1 (2 1) (0 3) 0sec 0cpu H:20 [24] P:12 V:0 1 5 (2 1) (1 2) 0sec 0cpu H:20 [24] P:14 V:2 3 (0 3) (2 1) 0sec 0cpu H:20 [24] P:16 V:2 5 (0 3) (2 1) 0sec 0cpu H:20 [24] P:17 V:2 4 (1 2) (1 2) 0sec 0cpu H:20 [24] P:18 V:2 4 5 (1 2) (2 1) 0sec 0cpu H:20 [24] P:19 V:0 2 (1 2) (1 2) 0sec 0cpu H:20 [24] P:20 V:0 2 5 (1 2) (2 1) 1sec 0cpu H:20 [24] P:21 V:0 2 4 (2 1) (1 2) 0sec 0cpu H:20 [24] P:22 V:1 3 (1 2) (1 2) 0sec 0cpu H:20 [24] P:23 V:1 2 (1 2) (1 2) 0sec 0cpu H:20 [24] P:24 V:1 2 5 (1 2) (2 1) 0sec 0cpu H:20 [24] P:25 V:1 2 4 (2 1) (1 2) 0sec 0cpu H:20 [24] P:26 V:0 3 (1 2) (1 2) 0sec 0cpu H:20 [24] P:27 V:0 1 2 (2 1) (1 2) 0sec 0cpu H:20 [24] P:28 V:3 4 (1 2) (1 2) 1sec 0cpu H:20 [24] P:29 V:3 5 (0 3) (2 1) 0sec 0cpu np=24 d:1 p:6 0sec 0cpu

Note that the CWS is symmetric under permutations of the vertices labeled by 0,1,4 and those labeled by 2,3,5. Furthermore there only exist three pairs of degrees of the complete intersection (up to exchange within a pair): {(1,2),(1,2)},{(0,3),(2,1)},{(1,2),(2,1)}. Therefore we conclude that there are only three inequivalent nef partitions. This is indeed confirmed by calling nef.x without the option -s.

palp$ nef.x -Lv Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 1 1 1 0 0 0 3 0 0 0 1 1 1 3 1 1 1 0 0 0 3 0 0 0 1 1 1 M:100 9 N:7 6 codim=2 #part=5 4 6 Vertices in N-lattice: 0 0 0 1 0 -1 0 0 1 0 0 -1 -1 0 0 0 1 0 -1 1 0 0 0 0 ------------------------------ 1 1 0 0 1 0 d=3 codim=2 0 0 1 1 0 1 d=3 codim=2 H:20 [24] P:1 V:3 4 5 (1 2) (2 1) 0sec 0cpu H:20 [24] P:2 V:3 5 (0 3) (2 1) 0sec 0cpu H:20 [24] P:3 V:4 5 (1 2) (1 2) 0sec 0cpu np=3 d:1 p:1 0sec 0cpu

### -n

The option -n prints the points of the polytope in the N-lattice only if there is at least one nef partition which does not correspond to a projection or a direct product. In addition, the first line of the standard output is printed while the other lines are suppressed.

palp$ nef.x -n Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 4 1 1 1 1 4 1 1 1 1 M:35 4 N:5 4 codim=2 #part=2 3 5 Points of Poly in N-Lattice: -1 0 0 1 0 -1 0 1 0 0 -1 1 0 0 0

**Further examples**:

Example without a nef partition:

palp$ nef.x -n Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 6 3 2 1 0 0 6 3 0 0 2 1 6 3 2 1 0 0 6 3 0 0 2 1 M:21 5 N:12 5 codim=2 #part=0

Here the N-lattice polytope is not printed.

Example: no output of the polytope if there is only a nef partition corresponding to a projection:

Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 6 3 2 1 0 0 3 1 0 0 1 1 6 3 2 1 0 0 3 1 0 0 1 1 M:24 6 N:9 5 codim=2 #part=1

We can use the option -P to check that the nef partition corresponding a projection:

palp$ nef.x -P Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 6 3 2 1 0 0 3 1 0 0 1 1 6 3 2 1 0 0 3 1 0 0 1 1 M:24 6 N:9 5 codim=2 #part=1 H:[0] P:0 V:4 DP 0sec 0cpu np=0 d:0 p:1 0sec 0cpu

### -v

The option -v prints the size of the matrix of vertices, the number of points and the vertices of the polytope that has been entered (M-lattice or N-lattice, depending on the input!). If the input is the weight matrix the M-lattice polytope is analyzed. The output is printed in a single line with the character *E* as seperator. Furthermore one can limit the output to polytopes whose number of points is limited to a lower and an upper bound:

- -v -u#, where # is an integer , only gives output if the polytope has at most # points. The default value is the parameter POINT_Nmax which fixes the maximal number of points of a polytope at compilation.
- -v -l#, where # is an integer , only gives output if the polytope has at least # points.The default value is 0.

After closing the program a summary is printed. It contains information on how many of the polytopes examined satisfy the bounds and how many polytopes with # of points have been found.

As an example we consider the complete intersection of codimesnsion 2 in and with the weight matrices as input and without bounds.

palp$ nef.x -v Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 4 1 1 1 1 3 4 P:35 E -1 3 -1 -1E -1 -1 3 -1E -1 -1 -1 3 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 1 1 1 0 0 0 3 0 0 0 1 1 1 4 9 P:100 E -1 2 -1 -1 2 -1 -1 2 -1E -1 -1 2 -1 -1 2 -1 -1 2E -1 -1 -1 2 2 2 -1 -1 -1E -1 -1 -1 -1 -1 -1 2 2 2 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 2 of 2 35# 1 100# 1

Since we have entered a weight matrix the M-lattice polytope is analyzed. Let us discuss the first line of output:

3 4 P:35 E -1 3 -1 -1E -1 -1 3 -1E -1 -1 -1 3

The first two numbers indicate the number of rows and columns of the matrix of vertices in the M-lattice polytope. P:35 indicates that the M-lattice polytope has 35 points. The vertices of the M-lattice polytope are then written in one line with the separator E. The output of the second example is analogous. After we quit PALP by hitting enter without input the following output is given:

2 of 2 35# 1 100# 1

This means that 2 out of the 2 polytopes analyzed satisfy the bounds and that there is one polytope with 35 points and one with 100.

Next we consider the same example as above but with the upper bound for the number of points set to 50:

palp$ nef.x -v -u50 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 4 1 1 1 1 3 4 P:35 E -1 3 -1 -1E -1 -1 3 -1E -1 -1 -1 3 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 1 1 1 0 0 0 3 0 0 0 1 1 1 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 1 of 2 35# 1

Now the second polytope exceeds the upper bound for the points as it has 100 points (cf. previous example). There is no output for the second polytope and the summary indicates that only one of the two polytopes analyzed satisfies the bounds.

**Further examples**:

Example: same example as above but now we enter the N-lattice polytope and search for polytopes which have at least 7 points in the N-lattice.

Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 4 Type the 12 coordinates as dim=3 lines with #pts=4 columns: -1 0 0 1 -1 0 1 0 -1 1 0 0 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 4 6 Type the 24 coordinates as dim=4 lines with #pts=6 columns: 0 0 0 1 0 -1 0 0 1 0 0 -1 -1 0 0 0 1 0 -1 1 0 0 0 0 4 6 P:7 E 0 0 0 1 0 -1E 0 0 1 0 0 -1E -1 0 0 0 1 0E -1 1 0 0 0 0 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 1 of 2 7# 1

There is no output for the first polytope because it has less than 7 vertices. As one can check using option -Lp the N-lattice polytope has only 5 points. There is output for the second polytope since it has seven points and therefore satisfies the bound.

### -m

The option -m returns a nef partition of length 2
resulting from a partition *d* = *d*_{1} + *d*_{2} of the degree of a weight system.
More precisely, the input data is a single weight
system w and two positive integers *d*_{1},*d*_{2} such that

∑ | w_{i} = d_{1} + d_{2} |

i |

. The input format is *# d= # #*, where the first # is the usual CWS, while the # after d= refer to d1 and d2 , respectively.

As always, w specifies
as the Newton polytope of degree d.
Furthermore, the degrees *d*_{1},*d*_{2} specify Newton polytopes
from which one obtains the Minkowski sum
.
If
define a nef partition of
the vertices of , then the data of
this nef partition are given in the standard output.

The following example taken from hep-th/0410018 illustrates this option.
We consider the weighted projective space
specified by the weight vector of degree d=14. The polytope Δ = Δ^{(14)} is the
Newton polytope of degree 14 monomials in this space.
We first analyze the toric variety determined by Δ^{(14)}:

palp$ nef.x -Lv Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #colums' (= `PolyDim #Points' or `#Points PolyDim'): 14 1 1 1 1 4 6 14 1 1 1 1 4 6 M:1271 13 N:10 8 codim=2 #part=2 5 8 Vertices in N-lattice: 0 -1 0 0 0 1 0 0 0 -1 1 0 0 0 0 0 0 -1 0 1 0 0 0 0 0 -4 0 0 1 0 -1 -1 1 -6 0 0 0 0 -1 -2 ---------------------------------------- 6 1 1 1 4 1 0 0 d=14 codim=0 1 0 0 0 1 0 1 0 d=3 codim=3 2 0 0 0 1 0 0 1 d=4 codim=3 H:1 149 [-296] P:1 V:3 4 5 7 8 (6 8) (1 2) (2 2) 2sec 1cpu np=1 d:0 p:1 2sec 1cpu

So Δ^{(14)} has 1271 lattice points and 13 vertices, and
(Δ^{(14)})^{ * } is the convex hull of the eight vertices shown in the
output.
By considering the weight systems below the dashed line one sees that
is the blowup of along the
divisors corresponding to the last two vertices of (Δ^{(14)})^{ * }.
Now we want to use the option -m to see whether the partition
14 = 2 + 12 determines a nef partition via the Minkowski sum
Δ^{(2,12)} = Δ^{(2)} + Δ^{(12)}.

palp$ nef.x -Lv -m type degrees and weights [d w1 w2 ... wk d=d_1 d_2]: 14 1 1 1 1 4 6 d=2 12 14 1 1 1 1 4 6 d=2 12 M:1270 12 N:11 7 codim=2 #part=2 5 7 Vertices in N-lattice: 0 -1 0 0 0 1 0 0 -1 1 0 0 0 0 0 -1 0 1 0 0 0 0 -4 0 0 1 0 -2 1 -6 0 0 0 0 -3 ----------------------------------- 6 1 1 1 4 1 0 d=14 codim=0 3 0 0 0 2 0 1 d=6 codim=3 d=12 2H:3 243 [-480] P:0 V:3 5 (2 12) (0 6) 7sec 6cpu np=1 d:0 p:1 0sec 0cpu

The output indeed yields such a nef partition.
Since not every monomial of degree 14 is a product
of monomials of degree 2 and 12, the polytope Δ^{(2,12)} is only a proper
subpolytope of Δ^{(14)}.
Consequently is obtained from
by a further blowup along the vertex (0,0,0, − 2, − 3)^{T}.

By using the option -m in the same way one can find that
Δ^{(6,8)} = Δ^{(14)} and that 14 = 3 + 11 does not give rise
to a nef partition.

### -R

The option -R prints the vertices of the input polytope if it is not reflexive. To illustrate this we enter the CWS of a polytope which is not reflexive:

palp$ nef.x -R Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 6 3 2 1 0 0 5 0 0 1 1 3 3 4 Vertices of P: -1 1 0 0 0 1 -1 1 -1 0 0 0

The same output is given if we enter the N-lattice polytope itself. Without the option -R there is not output if the polytope is not reflexive:

palp$ nef.x Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 6 3 2 1 0 0 5 0 0 1 1 3 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'):

### -V

The option -V prints the vertices of the polytope in the N-lattice together with the standard output. In contrast to the option -Lv the information about the linear relations is not given. Furthermore, in the lines containing the nef partitions the additional information about the degrees is left out. The option -V also works for non-reflexive polytopes.

As an example we consider a complete intersection of codimension 2 in :

palp$ nef.x -V Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 4 1 1 1 1 4 1 1 1 1 M:35 4 N:5 4 codim=2 #part=2 3 4 Vertices of P: -1 0 0 1 -1 0 1 0 -1 1 0 0 H:[0] P:0 V:2 3 0sec 0cpu np=1 d:0 p:1 0sec 0cpu

We can also enter the M-lattice polytope to get the same result:

palp$ nef.x -V Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 4 Type the 12 coordinates as dim=3 lines with #pts=4 columns: -1 3 -1 -1 -1 -1 3 -1 -1 -1 -1 3 M:35 4 N:5 4 codim=2 #part=2 3 4 Vertices of P: -1 0 0 1 -1 0 1 0 -1 1 0 0 H:[0] P:0 V:2 3 0sec 0cpu np=1 d:0 p:1 0sec 0cpu

Example: If the polytope is non-reflexive the output is the same as for the option -R:

palp$ nef.x -V Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 6 3 2 1 0 0 5 0 0 1 1 3 3 4 Vertices of P: -1 1 0 0 0 1 -1 1 -1 0 0 0

### -Q

The option -Q prints the information about the nef partitions and the Hodge numbers only if the corresponding complete intersection is a direct product (cf. option -D) up to lattice quotients. If none of the nef partitions is a direct product only the numbers of points and vertices in the M- and N-lattice, together with the codimension and the number of nef partitions is given.

Example: Complete intersection of codimension 2 in . As one can check using the option -D one of the nef partitions corresponds to a direct product:

palp$ nef.x -Q Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 1 1 1 0 0 0 3 0 0 0 1 1 1 3 1 1 1 0 0 0 3 0 0 0 1 1 1 M:100 9 N:7 6 codim=2 #part=5 H:4 [0] h1=2 P:0 V:2 3 5 D 0sec 0cpu np=4 d:1 p:0 0sec 0cpu

Example: Complete intersection of codimension 2 in . This example has no nef partition corresponding to a direct product. Then the output looks as follows:

palp$ nef.x -Q Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 4 1 1 1 1 4 1 1 1 1 M:35 4 N:5 4 codim=2 #part=2 np=2 d:0 p:0 0sec 0cpu

The N-lattice polytope of has no nef partition corresponding to a direct product. Then the output looks as follows: \begin{verbatim} palp$ nef.x -Q Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...'

or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'):

4 1 1 1 1 4 1 1 1 1 M:35 4 N:5 4 codim=2 #part=2 np=2 d:0 p:0 0sec 0cpu \end{verbatim}

Example: Complete intersection of codimension 2 in quotiented by :

palp$ nef.x -Q Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 1 1 1 0 0 0 3 0 0 0 1 1 1/Z3: 0 1 2 0 0 0/Z3: 0 0 0 1 2 0 3 1 1 1 0 0 0 3 0 0 0 1 1 1 /Z3: 0 1 2 0 0 0 /Z3: 0 0 0 1 2 0 M:16 9 N:19 6 codim=2 #part=1 H:4 [0] h1=2 P:0 V:2 3 5 7 9 10 11 15 16 D 0sec 0cpu np=0 d:1 p:0 0sec 0cpu

Note that the nef partition now contains more points due to the lattice refinement induced by the quotient.

**???**: The comment "up to lattice quotient" in the help screen may indicate that the scope of this option is larger than described here.

### -g*

The option -g*, where * is an integer m=0,1,2, returns the points of the supports of the Gorenstein cones associated to the nef partitions of length r of the input polytope . For the notation on Gorenstein cones see Nef partitions and Gorenstein cones. The default value is m=1. The standard output is changed as follows. The lines containing the information about the nef partition including the Hodge numbers, the parts of the nef partition etc. are suppressed. Instead, for each nef partition the points of are printed in the following form:

D n Points of PG: (nv=#) # # ... # # . . ... . . . . ... . . # # ... # #

The interpretation depends on the integer m.

For m=2 the output is the list of points .
Note that since the origin 0_{N}
belongs to every part of the nef partition, it appears r times, each
time another of the r support functions being equal to 1.

For m=1 the redundant coordinate ϕ_{0}(*p*) is omitted in
and we obtain vectors .

For m=0 all ϕ_{i}(*p*) are omitted and the resulting r-fold
occurrence of 0_{N} is reduced to just a single occurrence; information on
the nef partition is lost and the output becomes just
the list of lattice points of Δ^{ * }.

The values of D, n and the # columns are summarized in the following table:

where n is the number of lattice
points in Δ^{ * } and are as in Nef partitions and Gorenstein cones. The number # in nv=# denotes the number of vertices of the cone . The order of the points is first the vertices, then the non-vertex
points with the origin at the end.

The following example illustrates this option. We consider complete intersections of codimension 2 in discussed in arXiv:0704.0449[hep-th]. The nef partitions for this example were discussed in the section on the standard output. With the choice of m=2 we obtain the information about the partition in terms of the Gorenstein cone. Let denote the vertices of the polytope in the N-lattice.

palp$ nef.x -N -g2 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #colums' (= `PolyDim #Points' or `#Points PolyDim'): 5 8 Type the 40 coordinates as dim=5 lines with #pts=8 colums: 1 0 -1 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 1 -1 M:300 18 N:9 8 codim=2 #part=15 7 10 Points of PG: (nv=8) 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 -1 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 0 0 1 -1 0 0 7 10 Points of PG: (nv=8) 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 0 -1 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 0 0 1 -1 0 0 [output of further nef partitions]

Let us consider for instance the nef partition P:8 as produced for by the option -Lp:

H:19 19 [0] P:8 V:4 5 6 7 (0 3) (1 1) (3 0) 0sec 0cpu

This example was the focus of arXiv:0704.0449[hep-th]. The output of -g2 for this nef partition is:

7 10 Points of PG: (nv=8) 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 -1 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 0 0 1 -1 0 0

Since the first four vertices and are in , we have ϕ_{0}(*v*_{i}) = 1 and ϕ_{1}(*v*_{i}) = 0, hence the corresponding points of the Gorenstein cone take the form (1,0,*v*_{i}) for . The next four vertices and are in , we have and , hence the corresponding points of the Gorenstein cone take the form for . Finally, the origin always belongs to every part of the nef partition, hence it appears as often as the codimension which here is . So and . Once with and and once with and .

### -d*

The option -d*, where * is an integer m=0,1,2, returns
the points of the Gorenstein cones associated
to the nef partitions of length r of the polytope .
For the notation on Gorenstein cones see the section on nef partitions and Gorenstein cones.
This option can be used to determine the polytope for each of the nef partitions of the given polytope Δ^{ * }. The polytope can then be further analyzed with poly.x.

The integer m triggers the same output format as for the option -g*. The default value is m=1. The option -d2 automatically sets the flag -p.

The following example illustrates this option. We consider complete intersections of codimension 2 in discussed in arxiv:0704.0449[hep-th]. For more details on the nef partitions see the example in the section on the standard output and on -g*.

palp$ nef.x -N -d2 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #colums' (= `PolyDim #Points' or `#Points PolyDim'): 5 8 Type the 40 coordinates as dim=5 lines with #pts=8 colums: 1 0 -1 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 1 -1 M:300 18 N:9 8 codim=2 #part=15 7 63 Points of dual PG: (nv=27) 1 0 1 0 0 1 1 1 ... 0 1 0 1 1 0 0 0 ... -1 0 1 1 0 -1 -1 -1 ... -1 1 -1 0 1 1 1 -1 ... [63-8=55 more points] 0 1 0 1 -1 0 0 0 ... -1 0 -1 0 0 1 -1 -1 ... -1 1 1 1 1 -1 -1 1 ... [...]

For each of the 11 nef partitions of the input polytope Δ^{ * }
we get a 7-dimensional dual Gorenstein cone C from which the
points of the polytope
can be read off by omitting the first two entries of each
column.
The numbers of points and vertices of depend on which of the
nef partitions is considered.
The nef partition of interest in arxiv:0704.0449[hep-th] was P:8. The
corresponding output of -d2 is

7 40 Points of dual PG: (nv=12) 0 0 1 1 1 0 0 0 ... 1 1 0 0 0 1 1 1 ... 0 0 -1 2 -1 0 0 0 ... 0 0 2 -1 -1 0 0 0 ... [40-8=32 more points] 0 1 0 0 0 1 1 0 ... -1 -1 0 0 0 2 -1 -1 ... -1 2 0 0 0 -1 -1 2 ...

We see that the polytope has 39 points (the interior point appears twice) and 12 vertices. Let be the standard basis of . Let denote the vertices of the polytope . with

From the above output we can read off the nef partition of :

We can check this by feeding the vertices back into nef.x with the options -N and -Lv.

palp$ nef.x -N -Lv Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #colums' (= `PolyDim #Points' or `#Points PolyDim'): 5 12 Type the 60 coordinates as dim=5 lines with #pts=12 colums: 0 0 -1 2 -1 0 0 0 -1 2 -1 0 0 0 2 -1 -1 0 0 0 2 -1 -1 0 0 1 0 0 0 1 1 0 -1 -1 -1 0 -1 -1 0 0 0 2 -1 -1 0 0 0 2 -1 2 0 0 0 -1 -1 2 0 0 0 -1 M:24 15 N:39 12 codim=2 #part=2 5 12 Vertices in N-lattice: 0 0 -1 2 -1 0 0 0 -1 2 -1 0 0 0 2 -1 -1 0 0 0 2 -1 -1 0 0 1 0 0 0 1 1 0 -1 -1 -1 0 -1 -1 0 0 0 2 -1 -1 0 0 0 2 -1 2 0 0 0 -1 -1 2 0 0 0 -1 ------------------------------------------------------------ [linear relations] H:19 19 [0] P:0 V:1 2 3 4 5 6 13 15 17 ... [degrees] H:19 19 [0] P:1 V:2 3 4 8 9 10 16 17 18 ... [degrees] np=2 d:0 p:0 0sec 0cpu

We see that the nef partition P:1 agrees with .

### -G

The option -G works directly with Gorenstein cones
which need not correspond to nef partitions.
This is in particular
useful for analyzing generalized Calabi-Yau manifolds as defined
in hep-th/9304045 and alg-geom/9402002.
The input polytope is interpreted as the support polytope Δ(*C*)
of a reflexive Gorenstein cone C, cf. the section on nef partitions and Gorenstein cones.
The index r of the cone is 2 by default and can be set to different
values with the -c*.
The standard output contains information on the support polytopes of the cone and the dual cone and the string-theoretic Hodge numbers *h*_{ij}, , see alg-geom/9509009.
If the input does not correspond to a reflexive Gorenstein cone of index r, no Hodge numbers and no N-lattice data can be computed;
as usual, the number of facets is displayed instead.
If the input corresponds to a reflexive Gorenstein cone of an index different from r, this is treated like a non-reflexive case but with a warning message.

palp$ nef.x -G Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 4 2 Type the 8 coordinates as #pts=4 lines with dim=2 columns: 0 0 0 1 1 0 1 1 M:4 4 N:4 4 H:[0] h0=0 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 1 1 1 1 1 1 3 1 1 1 1 1 1 M:56 6 N:6 6 H:20 [24] Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 7 1 1 1 2 3 3 3 7 1 1 1 2 3 3 3 M:154 18 F:9 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 7 1 1 2 2 2 3 3 7 1 1 2 2 2 3 3 M:116 18 N:9 9 H:2 70 [-136] Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 3 2 Type the 6 coordinates as #pts=3 lines with dim=2 columns: 0 0 1 0 0 1 Warning: Input has index 3, should be 2! M:3 3 F:3 Degrees and weights `d1 w11 w12 ... d2 w21 w22 ...' or `#lines #columns' (= `PolyDim #Points' or `#Points PolyDim'): 1 1 1 0 0 0 0 2 0 0 1 1 1 1 1 1 1 0 0 0 0 2 0 0 1 1 1 1 M:20 8 N:6 6 H:[0]

As the examples show, weight input d w1 ... wn requires
; in other words the weights *q*_{i} = *w*_{i} / *d* add up to r
rather than to 1 as in the standard case.
See arXiv:1204.1181[hep-th] for more information on how weight systems determine
Gorenstein cones.

-G cannot be combined with all of the other options. Nevertheless -N swaps the lattices M and N as usual; -H, -S, -T work as expected; -t works (without it no time information is given); -c* determines the index; -R displays the vertices of the input polytope if the cone is not reflexive of index r; -V displays the vertices of the support polytope of the dual (N lattice) cone; -g*, -d* display the full sets of points of the support polytopes in the lattices N or M, respectively (here no numbers can be specified with these options).

## Strategy for future versions

Should we keep both help screens, or try to get everything into 'nef.x -h'?

It would be good to have a documentation of the header file Nef.h: just type whatever information you can supply into the following listing, in the standard ('/* ... */') C comment format.

#define Nef_Max 500000 #define NP_Max 500000 #define W_Nmax (POLY_Dmax+1) #define MAXSTRING 100 #undef WRITE_CWS #define WRITE_CWS #define Pos_Max (POLY_Dmax + 2) #define FIB_Nmax 10*EQUA_Nmax #define FIB_POINT_Nmax VERT_Nmax typedef struct { Long W[FIB_Nmax][FIB_POINT_Nmax]; Long VM[FIB_POINT_Nmax][POLY_Dmax]; int nw; int nv; int d; int Wmax; } LInfo; struct Poset_Element { int num, dim; }; struct Interval { int min, max; }; typedef struct Interval Interval; typedef struct { struct Interval *L; int n; } Interval_List; typedef struct Poset_Element Poset_Element; typedef struct { struct Poset_Element x, y; } Poset; typedef struct { struct Poset_Element *L; int n; } Poset_Element_List; typedef struct { int nface[Pos_Max]; int dim; INCI edge[Pos_Max][FACE_Nmax]; } Cone; typedef struct { Long S[2*Pos_Max]; } SPoly; typedef struct { Long B[Pos_Max][Pos_Max]; } BPoly; typedef struct { int E[4*(Pos_Max)][4*(Pos_Max)]; } EPoly; typedef struct { Long x[POINT_Nmax][W_Nmax]; int N, np; } AmbiPointList; typedef struct { int n; int nv; int codim; int S[Nef_Max][VERT_Nmax]; int DirProduct[Nef_Max]; int Proj[Nef_Max]; int DProj[Nef_Max]; } PartList; typedef struct { int n; int nv; int S[Nef_Max][VERT_Nmax]; } Part; typedef struct { int n, y, w, p, t, S, Lv, Lp, N, u, d, g, VP, B, T, H, dd, gd, noconvex, Msum, Sym, V, Rv, Test, Sort, Dir, Proj, f; } Flags; typedef struct { int noconvex, Sym, Test, Sort; } NEF_Flags; struct Vector { Long x[POLY_Dmax]; }; typedef struct Vector Vector ; typedef struct { struct Vector *L; int n; Long np, NP_max; } DYN_PPL; void part_nef(PolyPointList *, VertexNumList *, EqList *, PartList *, int *, NEF_Flags *); void Make_E_Poly(FILE *, CWS *, PolyPointList *, VertexNumList *, EqList *, int *, Flags *, int *); void Mink_WPCICY(AmbiPointList * _AP_1, AmbiPointList * _AP_2, AmbiPointList * _AP); int IsDigit(char); int IntSqrt(int q); void Die(char *); void Print_CWS_Zinfo(CWS *);