[Rcpp-devel] arma to Rcpp

Dirk Eddelbuettel edd at debian.org
Wed Dec 14 17:12:43 CET 2011

On 14 December 2011 at 13:55, Stefano Calza wrote:
| Hi everybody
| this is probably a trivial question,but still something is not clear to me.
| Moving from SEXP => Rcpp => arma objects (say a matrix) I could do:
| Rcpp::NumericMatrix A(clone(X)); // I want deep copy
| arma::mat B = as< mat >(A); // again a copy
| ...
| some code here that modifies B
| ...
| Now, what shall I do if I want to transform B into a Rcpp::NumericMatrix? Why?
| For example I might want to add attributes to it.
| wrap() is no good, so what else?

Well as wrap() returns a SEXP, if you really wanted to, you could then call
as<>() on that SEXP to create a new Rcpp object.  That is perfectly generic.

As for a more direct arma::mat to Rcpp::NumericMatrix: I would study all
available constructors to Rcpp::NumericMatrix. There are forms where you
indicate the beginning of the underlying memory as well as the dimensions.

More information about the Rcpp-devel mailing list