Too many people program the same basic things over and over again, and
re-create the same bugs over and over again. The goal of the CVMLCPP
project is to eliminate this redundancy by offering high-quality
implementations of commonly needed functionality.
In more technical words...
If it is not in the STL or in
BOOST, it should be in CVMLCPP. The
implementation is intended to closely follow the design principles of
For the exact contents of the CVMLCPP library, see the
documentation of the most recent
Alternatively, you can download a source tarball from the list below.
Installation requires a C++ compiler, gnu's make, SCons,
BOOST, and optionally the FFTW.
Download and unpack the source, then enter the created directory.
First, edit the Makefile to specify TARGET, the installation directory. By default, the
documentation, headers and libraries are installed in /usr/local.
Before compilation, the system has to be configured to select the right compiler and compiler options.
This can be done manually by setting the evironment variables CXX, CXXFLAGS, and
LDFLAGS. To ease compilation on many different platforms, the build system has a number of
predefined configurations. The compiler can be selected by passing a parameter CNF to make on the
The gnu compiler 4.2 or later with OpenMP support.
The Intel compiler with OpenMP support.
The Open64 compiler with OpenMP support.
Additionally, a release-mode and a debug mode are supported. The mode can be specified by
providing a parameter MODE to make on the command line. If no MODE is given, release mode is
Optimized for speed, no debugging symbols.
With debugging symbols, optimizations switched off.
To install, append install to the same command as used to compile and execute.
Example 1: Manual configuration
$ make clean
$ export CXX=g++-mp-4.2
$ export CXXFLAGS="-I.. -Wall -O3 -march=native"
$ sudo make install
Example 2: Pre-defined configuration for Open64, in debugging mode.
$ make clean
$ make CNF=o64 MODE=debug
$ sudo make CNF=o64 MODE=debug install
Example 3: Pre-defined configuration for the system's default GCC, in release mode.
$ make clean
$ make CNF=gcc
$ sudo make CNF=gcc install
If you wish to de-install execute sudo make uninstall.
The CVMLCPP is free, open source software, available for the largest part under the
GPL, the "GNU Public License".
The OMPTL is available under the
LGPL, the "Lesser
GNU Public License". Please refer to the source files for appropriate information.
If you find a bug in the CVMLCPP, please send a clear report, and if
possible a patch, to Fokko dot Beekhof at
unige dot ch .