Hi Dirk, sorry for my premature judgement. You are right. Doing it the way you suggest below, should indeed give a very fast implementation, using the same memory.
In regard to the C++11 standard in R: This is just constricting the possibilities R gives, in my opinion. And the fact, that most people in HPC use either Fortran or C++ - only a few use C - seems to point to the adequacy of C++ in this area of programming, which becomes more and more important today. Furthermore, C++ is an OO language and as R implements OOP as well, it seems to me a little inconsistent, that the language extending it is entirely not OO. Let us see how the things develop in near future. I think with Rcpp and RcppArmadillo R programmers got a powerful and still comfortable tool at hand and code/packages using C++ will accelerate. I myself use RcppArmadillo for a package that performs Bayesian Simulation and relies on S4 classes in R. It maps S4 objects to C++ objects, which also lets developers, who want to extend the package later on, understand the code more easily. Furthermore readability is enhanced in general, when using classes and I do not have to mention here Cs sometimes dangerous pointer arithmetic. Well enough here! First version of my package will rely on C++99 standard to make it possible to get installed on every R framework. Armadillo will give its warnings towards using gcc 4.7.1. I just hope, it runs with gcc 4.4 (my god, this version is really old) Best Simon On Mar 3, 2013, at 2:02 PM, Dirk Eddelbuettel <e...@debian.org> wrote: > > Simon, > > On 3 March 2013 at 11:52, Simon Zehnder wrote: > | Hi Dirk, > | > | I recognized the function rnorm in Rcpp. But as I work most times with > RcppArmadillo and Armadillo objects I wanted to avoid constructing > NumericMatrix objects, fill them and convert them to arma::mat objects. > Instead I decided to immediately generate arma::mat objects and fill them - > which was impossible without a loop when using a controlled random number > generation (for instance with the possibility to set the seed). > > You need just two lines (one to call rnorm, and one use the result to > instantiate an arma mat using the constructor using the same memory). No > loop. One call to the RNG. > > | I would like to ask something connected to the new feature: > | The C++ standard library (random) uses specific functions for random number > generation (for example std::gamma_distribution) , that are only available > when using a compiler supporting the C++11 standard. As far as I know R uses > C++99. So in a package these functions would be useless when redistribution > should be made possible. Do you know about some comments by the R core team > regarding the C++11 standard? Does it come soon? > > R being a C project, there aren't any strong C++ advocates on the R Core > team though some (like Duncan Murdoch) use it. The main blocker is CRAN > which is not very forthcoming in communications, and it seems to be one (very > prominent) CRAN maintainer and R Core member in particular... > > 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