**dirk.eddelbuettel**, and kindly contributed to R-bloggers)

Following the Rcpp 0.8.1

release we made yesterday, we released RcppArmadillo

release 0.2.2 this morning.

RcppArmadillo uses Rcpp

(and some ‘glue’ code) to provide a transparent interface from

R to

Conrad Sanderson’s impressive Armadillo library for linear algebra.

This release works well with the most recent

inline

release 0.3.5. One can now employ inlined R code as we generalized

how/which headers are included and how library / linking information is added

thanks a plugin mechanism. This is the first RcppArmadillo version to provide such

a plugin, We also updated the included Armadillo headers to its most recent release 0.9.10, added

some more operators and provide a utility function `RcppArmadillo:::CxxFlags()`

to provide include directory information on the fly.

An example of the direct inline approach for the `fastLm` function:

library(inline) library(RcppArmadillo) src <- ' Rcpp::NumericVector yr(ys); // creates Rcpp vector from SEXP Rcpp::NumericMatrix Xr(Xs); // creates Rcpp matrix from SEXP int n = Xr.nrow(), k = Xr.ncol(); arma::mat X(Xr.begin(), n, k, false); // reuses memory and avoids extra copy arma::colvec y(yr.begin(), yr.size(), false); arma::colvec coef = arma::solve(X, y); // fit model y ~ X arma::colvec res = y - X*coef; // residuals double s2 = std::inner_product(res.begin(), res.end(), res.begin(), double())/(n - k); // std.errors of coefficients arma::colvec std_err = arma::sqrt(s2 * arma::diagvec( arma::inv(arma::trans(X)*X) )); return Rcpp::List::create(Rcpp::Named("coefficients") = coef, Rcpp::Named("stderr") = std_err, Rcpp::Named("df") = n - k ); ' fun <- cxxfunction(signature(ys="numeric", Xs="numeric"), src, plugin="RcppArmadillo")

This creates a compiled function `fun` which, by using Armadillo, regresses a vector `ys`

on a matrix `Xs` (just how the `fastLmPure()` function in the

package does) — yet is constructed on the fly using `cxxfunction`

from inline.

More information is on the RcppArmadillo page.

Questions, comments etc should go to the

rcpp-devel mailing list

off the R-Forge page.

**leave a comment**for the author, please follow the link and comment on their blog:

**dirk.eddelbuettel**.

R-bloggers.com offers

**daily e-mail updates**about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...