Armadillo is a high quality C++ linear algebra library useful
for development of algorithms in machine learning, pattern recognition,
signal processing, bioinformatics, statistics, etc.
Armadillo makes extensive use of template meta-programming, recursive templates
and template based function overloading. As such, C++ compilers which do not
fully implement the C++ standard may not work correctly.
The functionality of Armadillo is partly dependent on other libraries:
LAPACK, BLAS and ARPACK. The LAPACK and BLAS libraries are used for
dense matrices, while the ARPACK library is used for sparse matrices.
Armadillo can work without these libraries, but its functionality
will be reduced. In particular, basic functionality will be available
(eg. matrix addition and multiplication), but things like eigen
decomposition or matrix inversion will not be. Matrix multiplication
(mainly for big matrices) may not be as fast.
As Armadillo is a template library, we recommended that optimisation
is enabled during compilation of programs that use Armadillo.
For example, for GCC and Clang compilers use -O2 or -O3