Armadillo is a C++ linear algebra library (matrix maths) aiming towards a good
balance between speed and ease of use. 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 libraries.A delayed evaluation approach is employed (during compile time) to combine several operations into one and reduce (or eliminate) the need for temporaries. This is accomplished through recursive templates and template meta-programming.
This library is useful if C++ has been decided as the language of choice (due to speed and/or integration capabilities), rather than another language like Matlab or Octave. It is distributed under a license that is useful in both open-source and commercial contexts.
Armadillo is primarily developed at NICTA (Australia), with contributions from around the world.
RcppArmadillo acts as a bridge between Rcpp and Armadillo,
allowing the programmer to write code using armadillo classes that integrate
seemlessly with Rcpp.RcppArmadillo, this is done by the RcppArmadillo.package.skeleton
function. The important steps are
RcppArmadillo.hheader file, which also includes
armadillo.h RcppArmadillo does not force these features. it is up to the third party package
to enable these them for their package. If your package wants to make use of
these features, you can add a subset of
these lines before #include
#define ARMA_USE_BOOST
#define ARMA_USE_BOOST_DATE
#define ARMA_USE_ATLAS
when you do so, you must make sure that the corresponding features are available, which typically involves writing a configure file. Refer to Writing R Extensions for the procedure.
Conrad Sanderson,