Armadillo is a C++ linear algebra library (matrix maths) aiming towards a good balance between speed and ease of use. The API is deliberately similar to Matlab.
Provides efficient classes for vectors, matrices and cubes, as well as many functions which operate on the classes (eg. contiguous and non-contiguous submatrix views).
Integer, floating point, and complex numbers are supported, as well as a subset of trigonometric and statistics functions. Various matrix decompositions are provided through optional integration with LAPACK and ATLAS numerics libraries.
A delayed evaluation approach, based on template meta-programming, is used (during compile time) to combine several operations into one and reduce or eliminate the need for temporaries.
Useful for algorithm development directly in C++, or quick conversion of research code into production environments.
4.40021 Aug 2014 14:57
- faster handling of subvectors by dot()
- faster handling of aliasing by submatrix views
- expanded batch insertion constructors for sparse matrices to add values at repeated locations
- added clamp() for clamping values to be between lower and upper limits
- added gmm_diag class for statistical modelling using Gaussian Mixture Models (GMM); includes multi-threaded implementation of k-means clustering and Expectation Maximisation (EM) algorithms