meta data for this page
  •  

Back to the #itlab main page

In Fortran and C

BLAS and LAPACK

These are the de facto standard fast linear algebra libraries. Bindings to C and other languages are available. ATLAS might be a good implementation of BLAS and LAPACK, it should give you a machine-optimized library.

In C++

TooN

http://savannah.nongnu.org/projects/toon

http://mi.eng.cam.ac.uk/~er258/cvd/toon.html

Tom's Object-oriented numerics library. Very templated, offers fast, highly optimizable fixed size matrix algebra and supports also dynamically sized matrices. Itlabcpp depends on this. Requires LAPACK.

CPPLAPACK

http://cpplapack.sourceforge.net/

LAPACK bindings for C++, seems quite nice library. Not really suitable for small fixed size matrix operations though. The library consists only of headers, no actual lib-files provided, but you must have BLAS and LAPACK installed and link your program to them.

TVMET

http://tvmet.sourceforge.net/

Tiny Vector Matrix library using Expression Templates. The idea is to unroll all matrix operations compile-time for small fixed-size matrices. Note: when running configure, --enable-optimizations can add compiler flags independent of your architecture, e.g. -msse2. The library consists only of headers, no actual lib-files provided. The library depends heavily on a compiler with templated code and for optimizations. GCC 3.3 seems to work well enough. This is the only library providing fixed-size unrolled matrix operations.

uBLAS
Blitz++

http://www.oonumerics.org/blitz/

Does contain TinyVector in the same sense as TVMET, but the corresponding matrix implementation for fixed-size matrices is lacking bad.

CVM Class Library

http://cvmlib.com/

Builds on BLAS and LAPACK, supports more than one operating environment. No experience about how good this is or is the interface nice. If you take a closer look at it, add your comments here. The latest version wants GCC 4.1. Supports AMD Core Math Library and Intel Math Kernel Library. Existed since 1992, has a 670-page manual.

VXL

http://vxl.sourceforge.net/

VXL is a set of vision libraries, and includes vnl, a numerics library including matrix manipulation. Misses LU-decomposition. API looks nice, includes fixed size matrices and vectors. Might be possible to take vnl without the other library components.