doc: reflect rename of cdd2polylib.pl to latte2polylib.pl
[barvinok.git] / README
blob33b3de8f475bac21ea8ced5a60516a9a470e5026
1 This is a (partial) reimplementation of latte
2 (http://www.math.ucdavis.edu/~latte/)
3 using polylib (http://icps.u-strasbg.fr/polylib/ or
4 http://www.kotnet.org/~skimo/polylib/).
6 Next to polylib, it uses NTL (http://shoup.net/ntl/)
7 Mac users may want to apply NTL_5_3_2.patch
9 Optionally, PIP (http://www.prism.uvsq.fr/~cedb/bastools/piplib.html)
10 can be used during enumeration of integer projections.
12 Both NTL and polylib need to have been compiled with gmp
13 support.
14 For NTL this means you have to specify
15     NTL_GMP_LIP=on
17 Suppose you want to put everyting in /opt,
18 Then you configure/compile polylib using
20 ./configure --with-libgmp=/path/to/gmp --prefix=/opt
21 make
22 make install
24 For NTL,
26 cd src
27 ./configure NTL_GMP_LIP=on PREFIX=/opt GMP_PREFIX=/path/to/gmp
28 make
29 make install
31 Configure this library using
33 ./configure --prefix=/opt --with-polylib=/opt --with-ntl=/opt
37 ./configure --prefix=/opt --with-polylib=/opt --with-ntl=/opt --enable-fractional
39 Then
41 make
42 make check
43 make install
45 If you want to put any one of these packages in the default location
46 (typically /usr/local), then the prefix argument can be omitted.
47 For more information on other arguments,
49 ./configure --help
51 Please use a version of the PolyLib library that is not
52 older than August 13th 2004.
54 The input format of barvinok_enumerate is the same as that
55 of testehrhart from the PolyLib distribution.
56 See the PolyLib manual, barvinok_enumerate.c or the
57 examples in tests/ehrhart/ .
59 Note that the fractional representation is subject to change.
61 The library supports three specialization algorithms.
62 The first performs a direct specialization using a random vector.
63 The second performs a "depth-first" incremental specialization.
64 The third performs a "breadth-first" incremental specialization.
66 The first is usually the fastest, but can fail if the random
67 vector happens to be chosen incorrectly.
68 The incremental algorithms should never fail, but can be slower,
69 in some cases by quite a bit.  The breadth-first version should
70 be faster than the depth-first version, especially on polytopes
71 of moderate dimension with a lot of "structure", but can require
72 more memory.
74 Sven Verdoolaege <skimo@kotnet.org>