descriptionlattice point enumeration library
homepage URLhttp://www.freshmeat.net/projects/barvinok
ownerskimo@kotnet.org
last changeFri, 15 Jan 2016 08:20:38 +0000 (15 09:20 +0100)
content tags
add:
readme
barvinok is a library for counting the number of integer points
in parametric and non-parametric polytopes as well as projections
of such sets.
For parametric polytopes the count is represented by either
an explicit function or a generating function.
The first comes in the shape of a piece-wise step-polynomial.
This is a generalization of both Ehrhart quasi-polynomials
and vector partition functions.
The second is a generalization of an Ehrhart series.

This library shares some functionality with LattE
(http://www.math.ucdavis.edu/~latte/)
and uses PolyLib (included), NTL (http://shoup.net/ntl/).
If you have cloned the git repository, you need to run
	git submodule init
	git submodule update
	sh autogen.sh
to get the submodules and create the configure scripts.

Additionally, the following packages can optionally be used
- Omega+ (http://chunchen.info/omega/)
- GLPK (http://www.gnu.org/software/glpk/)

NTL needs to have been compiled with GMP support.
That is, you have to specify
    NTL_GMP_LIP=on
NTL also needs to have been compiled in ISO mode.
For versions older than 5.4, this means you need an additional
    NTL_STD_CXX=on

Suppose you want to install everything in /opt,
Then you configure/compile NTL using

cd src
./configure NTL_GMP_LIP=on PREFIX=/opt GMP_PREFIX=/path/to/gmp
make
make install

Configure this library using

./configure --prefix=/opt --with-gmp-prefix=/path/to/gmp --with-ntl-prefix=/opt

If you want shared libraries, then configure with the
--enable-shared-barvinok option.
Note that this doesn't work on some systems because we link in libntl, which
is only available as a static library.
Also note that if you have previously installed a shared library of an older
version of barvinok, and you do not install one for this version, then the
linker may pick up the old shared library rather than the new static library.

If you want to compile and use the included pet library, then
you need the following packages:
- libyaml (http://pyyaml.org/wiki/LibYAML)
- LLVM/clang (http://clang.llvm.org/get_started.html)
Additionally, you need to configure with the --with-pet=bundled option.
See pet/README for more information.

Then

make
make check
make install

If you want to put any one of these packages in the default location
(typically /usr/local), then the prefix argument can be omitted.
For more information on other arguments,

./configure --help

The input format of barvinok_enumerate is the same as that
of testehrhart from the PolyLib distribution.
See the PolyLib manual, barvinok_enumerate.c or the
examples in tests/ehrhart/ .

Note that the fractional representation is subject to change.

The library supports three specialization algorithms.
The first performs a direct specialization using a random vector.
The second performs a "depth-first" incremental specialization.
The third performs a "breadth-first" incremental specialization.

The first is usually the fastest, but can fail if the random
vector happens to be chosen incorrectly.
The incremental algorithms should never fail, but can be slower,
in some cases by quite a bit.  The breadth-first version should
be faster than the depth-first version, especially on polytopes
of moderate dimension with a lot of "structure", but can require
more memory.

For bug reports, feature requests and questions,
contact http://groups.google.com/group/isl-development
shortlog
2016-01-15 Sven Verdoolaegebarvinok 0.39masterbarvinok-0.39
2016-01-15 Sven Verdoolaegeupdate pet to version 0.08
2016-01-15 Sven Verdoolaegeupdate isl to version 0.16.1
2016-01-12 Sven Verdoolaegeupdate AUTHORS
2016-01-05 Sven Verdoolaegeupdate pet for python interface
2016-01-05 Sven Verdoolaegeintroduce special version of isl.py.top for use with pet
2016-01-05 Sven Verdoolaegeupdate pet for isl_ctx_alloc_with_pet_options
2016-01-05 Sven Verdoolaegeisl.py: always extend version from core isl
2016-01-05 Sven Verdoolaegerename interface/all.h to interface/all_barvinok.h
2016-01-05 Sven Verdoolaegeupdate isl for changes in how sets and relations are...
2015-12-22 Sven Verdoolaegeiscc.c: use pet_scop_get_schedule
2015-12-22 Sven Verdoolaegeupdate pet for pet_scop_get_schedule
2015-12-22 Sven Verdoolaegeupdate pet for rename of pet_scop_collect_* to pet_scop...
2015-12-16 Sven Verdoolaegeupdate isl for isl_schedule_gist_domain_params
2015-12-16 Sven Verdoolaege.gitignore: add more libtool temporary files
2015-12-16 Sven Verdoolaegespecify subdir-objects option for forward compatibility...
...
tags
3 weeks ago barvinok-0.39 barvinok 0.39
7 months ago barvinok-0.38 barvinok 0.38
21 months ago barvinok-0.37 barvinok 0.37
3 years ago barvinok-0.36 barvinok 0.36
4 years ago barvinok-0.35 barvinok 0.35
4 years ago barvinok-0.34 barvinok 0.34
4 years ago barvinok-0.33 barvinok 0.33
5 years ago barvinok-0.32.1 barvinok 0.32.1
5 years ago barvinok-0.32 barvinok 0.32
5 years ago barvinok-0.31 barvinok 0.31
5 years ago barvinok-0.30 barvinok 0.30
6 years ago barvinok-0.29 barvinok 0.29
7 years ago barvinok-0.28 barvinok 0.28
7 years ago barvinok-0.27 barvinok 0.27
8 years ago barvinok-0.26 barvinok 0.26
8 years ago barvinok-0.25 barvinok 0.25
...
heads
3 weeks ago master