[Rcpp-devel] Differences between RcppEigen and RcppArmadillo

Dirk Eddelbuettel edd at debian.org
Wed Jun 13 20:43:33 CEST 2012

On 13 June 2012 at 10:57, Julian Smith wrote:
| I've been toying with both RcppArmadillo and RcppEigen the past few days and
| don't know which library to continue using. RcppEigen seems really slick, but
| appears to be lacking some of the decompositions I want and isn't nearly as
| fast to code. RcppArmadillo seems about as fast, easier to code up etc. What
| are some of the advantages/disadvantages of both?

That's pretty close.  I have been a fan of [Rcpp]Armadillo which I find
easier to get my head around.  Doug, however, moved from [Rcpp]Armadillo to
[Rcpp]Eigen as it has some things he needs.  Eigen should have a "larger" API
than Armadillo, but I find the code and docs harder to navigate.

And you should find Eigen to be a little faster. Andreas Alfons went as far
as building 'robustHD' using RcppArmadillo with a drop-in for RcppEigen (in
package 'sparseLTSEigen'; both package names from memmory and I may have
mistyped).  He reported a performance gain of around 25% for his problem
sets.  On the 'fastLm' benchmark, we find the fast Eigen-based decompositions
to be much faster than Armadillo.
| Can you call LAPACK or BLAS from either? Is there a wrapper in RcppEigen to
| call LAPACK functions? Want some other decomposition methods, dont like the
| JacobiSVD method in Eigen.

You need to differentiate between the Eigen and Armadillo docs _for their
libraries_ and what happens when you access the Rcpp* variant from R.

RcppArmadillo will use the very same LAPACK and BLAS libs your R session
uses. So MKL, OpenBlas, ... are all options.  Eigen actually has its own code
outperforming LAPACK, so it doesn't  as much there.

Hope this helps,   Dirk (at useR!)

| ----------------------------------------------------------------------
| _______________________________________________
| Rcpp-devel mailing list
| Rcpp-devel at lists.r-forge.r-project.org
| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com  

More information about the Rcpp-devel mailing list