Common Versatile Multi-purpose Library for C++

CUI - University of Geneva

Keywords: C++, STL, boost, OMPTL


In a nutshell...

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 the STL.


For the exact contents of the CVMLCPP library, see the documentation of the most recent release.


See the Release Notes for details of the latest release.

Ubuntu packages are available from the Tech Ubuntu Repository.

Alternatively, you can download a source tarball from the list below.

Release Link
2012-04-22 download
2011-12-02 download
2011-11-10 download
2011-09-23 download
2011-08-03 download
2011-03-11 download



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 command line.

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 used.

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"
$ make
$ 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.


Browse the source....


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 .