Documentation on nef.x
From Palp
nef.x is the application designed to address the following problems.
...
The corresponding routines are listed in the header file Nef.h.
Contents |
Help screens
The help screens for nef.x are
nef.x -h This is ``nef.x'': calculate hodge numbers of nef-partitions Usage: cws.x -<options> Options: -h print this information -f or - use as filter; otherwise parameters denote I/O files -N starting-poly is in N-lattice (detault 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)
(note that 'cws.x' should become 'nef.x'!!!) and
nef.x -x This is extended help for ``nef.x'': -y print 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 Poly only if it has nef-partitions -v prints Vertices and #points of starting-poly in one line. with the following option 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 starting-poly if it is not reflexive -V prints Vertices of poly (in N-lattice) -Q only direct products (up to lattice Quotient) -gNUMBER prints Points of Gorenstein Poly in N-lattice -dNUMBER prints Points of Gorenstein Poly 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
The options in detail
-N
???
-H
???
-Lv
???
-Lp
???
-p
???
-D
???
-P
???
-t
???
-c*
???
-F*
???
-y
???
-S
???
-T
???
-s
???
-n
???
-v
???
-m
???
-R
???
-V
???
-Q
???
-g*
???
-d*
???
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 *);