Projects / Armadillo C++ Library

Armadillo C++ Library

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's. 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.

Operating Systems

RSS Recent releases

  •  07 Apr 2014 22:52

Release Notes: This release contains faster inverse of matrices marked as diagonal and faster transpose of sparse matrices. It also has more efficient handling of aliasing during matrix multiplication.

Release Notes: This release contains faster handling of sparse submatrix views and better code generation when using the Clang C++ compiler. It also contains a workaround for a bug in LAPACK 3.4.

  •  21 Jan 2014 12:24

Release Notes: This release contains a fix for the randi() function generating out-of-interval values. It also contains a workaround for a bug in the Intel C++ compiler.

Release Notes: This release adds eigen decompositions of sparse matrices and a MEX connector for interfacing Matlab and Octave with Armadillo matrices. Many decompositions now use faster divide-and-conquer methods by default.

Release Notes: This release adds divide-and-conquer variants of economical SVD and pseudo-inverse functions, element-wise variants of min() and max(), easier specification of submatrix view sizes, and a more precise timer when using C++11.


Project Spotlight


Tools to access to a server's filespace and printers via SMB.


Project Spotlight


An online service for weather data.