Fast C++ matrix library with easy to use functions and syntax, deliberately similar to Matlab. Uses template meta-programming techniques.
Also provides efficient wrappers for LAPACK, BLAS and ATLAS libraries, including high-performance versions such as Intel MKL, AMD ACML and OpenBLAS.
For more details, see http://arma.sourceforge.net
- Easy to use
- Efficient classes for vectors, matrices, cubes (3rd order tensors) and fields
- Fast singular value decomposition (SVD), eigen decomposition, QR, LU, Cholesky, FFT
- Statistical modelling using Gaussian Mixture Models (GMM)
- Clustering using K-means and Expectation Maximisation
- Automatic vectorisation of expressions (SIMD)
- Contiguous and non-contiguous submatrices
- Automatically combines several operations into one
- Useful for prototyping directly in C++
- Useful for conversion of research code into production environments
- Many MATLAB like functions
- Distributed under a license useful in both open-source and proprietary/commercial contexts
Excellent all-purpose matrix library.
I like this project. It takes advantage of the new C++ features and is very easy to use.
Excellent usability, active development
A good matrix library that gives the best performance results. It allows the usage of several other third party libraries such as MKL, OpenBlas and ACML. Active development. As a downside, I would say that the last version (4.350, if I am not mistaken) does not support compilers lower or older than the one available in visual studio 2012 (v110). In our company, we had to use an older armadillo version to make it compatible with our environment.