RcppArmadillo-package: Rcpp/Armadillo bridge

Description Armadillo RcppArmadillo Using RcppArmadillo Options: ATLAS and Boost Support Author(s) References


The package eases the integration of Armadillo types with Rcpp.


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.

Using RcppArmadillo

The simplest way to get started is to create a skeleton of a package using RcppArmadillo, this is done by the RcppArmadillo.package.skeleton function.

The important steps are

Options: ATLAS and Boost

Armadillo can optionally use atlas and boost. Please refer to the Armadillo documentation http://arma.sourceforge.net/

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 <RcppArmadillo.h>

    #define ARMA_USE_BOOST
    #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.


Please use the Rcpp-devel mailing list on r-forge for questions about RcppArmadillo (subscribe first). https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Questions about armadillo itself should be directed to the armadillo forum http://sourceforge.net/apps/phpbb/arma/


For RcppArmadillo: Romain Francois, Dirk Eddelbuettel and Doug Bates

Maintainer: Romain, Dirk and Doug <RcppArmadillo-authors@r-enthusiasts.com>

For Armadillo: Conrad Sanderson


Armadillo project: http://arma.sourceforge.net/

Conrad Sanderson, Armadillo: An Open Source C++ Linear Algebra Library for Fast Prototyping and Computationally Intensive Experiments. Technical Report, NICTA, 2010.

RcppArmadillo documentation built on May 2, 2019, 5 p.m.