Armadillo is a high quality linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use
Provides high-level syntax and functionality deliberately similar to Matlab
Useful for algorithm development directly in C++, or quick conversion of research code into production environments
Provides efficient classes for vectors, matrices and cubes; dense and sparse matrices are supported
Integer, floating point and complex numbers are supported
A sophisticated expression evaluator (based on template meta-programming) automatically combines several operations to increase speed and efficiency
Dynamic evaluation automatically chooses optimal code paths based on detected matrix structures
Matrix decompositions (eigen, SVD, Cholesky, etc) are provided through
integration with LAPACK,
or one of its high performance drop-in replacements
(eg. MKL or OpenBLAS)
Can automatically use OpenMP multi-threading (parallelisation) to speed up computationally expensive operations
Distributed under the permissive Apache 2.0 license, useful for both open-source and proprietary (closed-source) software
Can be used for machine learning, pattern recognition, computer vision, signal processing, bioinformatics, statistics, finance, etc