This C++ class library encapsulates the concepts of vector and different matrices including square, band, symmetric and hermitian ones in Euclidean space of real and complex numbers. It utilizes BLAS and LAPACK Fortran libraries in order to achieve the best numerical performance possible. Along with basic vector and matrix arithmetics it contains different algorithms including norm computations, elementary transformations, solving of linear systems of kind Ax=b and AX=B, singular value decomposition, matrix rank and determinant computation, non-symmetric and symmetric eigenvalue problem (including Cholesky and Bunch-Kaufman factorization), LU factorization, QR factorization, square matrix polynomials, square matrix inversion, pseudo (generalized) inversion and square matrix exponent. All these algorithms are implemented for real and complex numbers.
The library is distributed under the Boost Software License, Version 1.0. Current version is 5.6.2, July 10th, 2008 (see also history of changes). The following compilers and integrated development environments are currently supported:
For older compilers please use the most stable version 5.2.
If you want to rebuild Fortran subroutines included into the library, you'll also need the Intel Fortran 9.0 or higher for Win32 and Linux platform. The library can be linked with Intel MKL 9.0 or higher, with AMD ACML 3.6.0 or higher and with the native BLAS and LAPACK implementations. As usual, your questions and bug reports are very welcome at ppdgnuh02@sneakemail.com.
Links to precompiled binaries for Win32, Win32 EM64T and Linux (IA32 and EM64T) platforms are given below (every archive contains both debug and release versions). They were built using the Intel Fortran and C++ 10.1.015. The MKL 10.0.012 (Windows) and 10.0.011 (Linux) libraries are dinamically linked with all MKL binaries (redistributables included). The AMD ACML 4.0.1 (3.6.0 for Linux 32 bit version) is dynamically linked with all ACML binaries (redistributables included).
| Intel MKL | AMD ACML | AMD ACML MP | |
| Win32 (x86) | cvmlib.5.6.2.mkl.ia32.zip | cvmlib.5.6.2.acml.ia32.zip | cvmlib.5.6.2.acml_mp.ia32.zip |
| Win32 EM64T | cvmlib.5.6.2.mkl.em64t.zip | cvmlib.5.6.2.acml.em64t.zip | cvmlib.5.6.2.acml_mp.em64t.zip |
| Linux, IA32 (x86) | cvmlib.5.6.2.mkl.ia32.tar.gz | cvmlib.5.6.2.acml.ia32.tar.gz | cvmlib.5.6.2.acml_mp.ia32.tar.gz |
| Linux, EM64T | cvmlib.5.6.2.mkl.em64t.tar.gz | cvmlib.5.6.2.acml.em64t.tar.gz | cvmlib.5.6.2.acml_mp.em64t.tar.gz |