HI Dirk, hi Romain,

allright, this is now clear to me, if I want to reuse memory, the allocated 
memory from R (so implicitly in C) must of course have the same type - 
otherwise the memory has a different size. 

On the other side I then assume, that the Rcpp:as<class M>() function makes a 
cast and therefore creates a copy with new allocated memory of the type 
included in M? Therefore a reuse of memory with this function is not possible. 



Best

Simon


On Jun 6, 2013, at 8:31 PM, Dirk Eddelbuettel <e...@debian.org> wrote:

> 
> On 6 June 2013 at 13:17, Dirk Eddelbuettel wrote:
> | 
> | On 6 June 2013 at 19:05, Simon Zehnder wrote:
> | | sorry I had overseen this message from you. Okay, so the explicit cast to 
> SEXP together with the assignment operator makes the deal. But it still 
> includes the reuse of memory right, i.e. the '=' does not call the copy 
> constructor? 
> | 
> | But how could an _unsigned int_ from Armadillo possibly have the same value
> | as a _signed int_ in R?
> | 
> | Either you are efficient (no copy), or you are correct (with a copy). I do
> | not see how you could have both.
> 
> Sorry -- please ignore this message. 
> 
> I had mistakenly assumed that you were still thinking about arma::umat to
> integer.  For direct int-to-int this is indeed efficient just like the
> double-to-double is for arma::mat to NumericMatrix (and dito for vectors).  I
> though that was a given -- maybe need to make this (even) more explicit in
> the documentation.
> 
> So in sum: you get correct and efficient behaviour if and only if you stick
> with the types natively supported in Armadillo and R.
> 
> Dirk
> 
> -- 
> Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com

_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to