-
- Description:
Armadillo is a template C++ linear algebra library (matrix maths) aiming towards a good balance between speed and ease of use. The API is similar to MATLAB.
Integer, floating point and complex numbers are supported, as well as a subset of trigonometric and statistics functions. Various matrix decompositions are provided via an optional integration with LAPACK, or one of its high performance drop-in replacements (eg. Intel MKL, AMD ACML, or OpenBLAS).
A delayed evaluation approach is employed (at compile time) to combine several operations into one and reduce (or eliminate) the need for temporaries. This is automatically accomplished through recursive templates and template meta-programming.
Useful for conversion of research code into production environments, or if C++ has been decided as the language of choice, due to speed and/or integration capabilities.
Distributed under a license that is useful in both open-source and commercial/proprietary contexts.
Primarily developed at NICTA (Australia) by Conrad Sanderson, with contributions from around the world.
- Changes to previous version:
- added MEX connector for interfacing Octave/Matlab with Armadillo matrices (contributed by George Yammine)
- faster divide-and-conquer decompositions are now used by default for svd(), svd_econ(), pinv(), eig_sym(), princomp(), rank()
- added eigen decomposition for pair of matrices: eig_pair()
- added simpler forms of eig_gen()
- added condition number of matrices: cond()
- expanded find() to handle cubes (3rd order tensors)
- expanded subcube views to access elements specified in a vector
- template argument for running_stat_vec expanded to accept vector types
- more robust fast inverse of 4x4 matrices
- added eigen decompositions of sparse matrices: eigs_sym() and eigs_gen()
Comments
No one has posted any comments yet. Perhaps you'd like to be the first?
Leave a comment
You must be logged in to post comments.