On 18 February 2014 at 19:12, Gregor Kastner wrote: | Dear all, | | while writing an iterator hack for the problem encountered a few hours ago | and posted here: | | https://www.mail-archive.com/rcpp-devel@lists.r-forge.r-project.org/msg06810.html, | | I have noticed that the default behavior for the range constructor for e.g. | Rcpp::NumericVector seems to be to allocate fresh memory: | | arma::mat obj1(5, 10, arma::fill::zeros); | Rcpp::NumericVector obj2(obj1.begin(), obj1.begin() + 5); | obj2 = 1.; | Rprintf("obj1: %f, obj2: %f\n", obj1(0,0), obj2(0)); | | yields that obj1 and obj2 differ. | | Is there any way to tell the range constructor to reuse existing memory | similarly to the (Rcpp)Armadillo feature copy_aux_mem = false or am I | missing something more subtle?
To use an advanced constructor for Armadillo object requires Armadillo to provide such a constructor in the first place. See http://arma.sourceforge.net/docs.html and I can only spot them for outright matrix, rowvec, colvec objects, but not for ranges. For Rcpp constructor, things are different too as Kevin kindly pointed out already. 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