I've extended Christian Gunning's speed test with an STL and C/C++ version; I was about to post but then I got a bit stuck with using Rcpp::wrap() for a raw block of memory. I'm using this:
src1cpp<-' int nn=as<int>(n); double *p=new double[nn]; ... NumericVector ret(p,p+nn); delete p; return ret; ' mysample_cpp<-cxxfunction( signature(n="numeric"), src1cpp, plugin='Rcpp') At first I wasn't using "delete p", and it worked fine, but the memory leak bothered me. Now I've added the delete it (irregularly) gives bad results. E.g. mysample_cpp(10) [1] 1.00000e+01 1.00000e+01 1.00000e+01 1.00000e+01 1.00000e+01 1.00000e+01 6.74011e+199 1.00000e+01 1.00000e+01 1.00000e+01 So, Q1: Was there no memory leak? I.e. R has taken control of my memory block and will delete it for me? Q2: Is this the best way to do it (with maximum speed, but no memory leaks, in mind)? Darren -- Darren Cook, Software Researcher/Developer http://dcook.org/work/ (About me and my work) http://dcook.org/blogs.html (My blogs and articles) _______________________________________________ Rcpp-devel mailing list [email protected] https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
