[Rcpp-devel] arma to Rcpp
Stefano Calza
stecalza at gmail.com
Wed Dec 14 18:18:55 CET 2011
Actually using wrap created my a headache because out of long runs and multicores R was randomly garbage collecting it causing segfaults.
Ok know I got it. Thanks
Stefano
Inviato da iPhone
Il giorno 14/dic/2011, alle ore 17:12, Dirk Eddelbuettel <edd at debian.org> ha scritto:
>
> 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.
> From Arma, you can get all that. But do check that you don't fall into a
> row-major / column-major trap, and if so, do another transpose.
>
> Dirk
>
> --
> "Outside of a dog, a book is a man's best friend. Inside of a dog, it is too
> dark to read." -- Groucho Marx
More information about the Rcpp-devel
mailing list