Hello, I am working on a package where I am passing some computations from R to C and back. The C code runs many stochastic trajectories of a population model (with the RNG from R through multiple calls to GetRNGstate and PutRNGstate). I would like that each trajectory has its own seed.
My problem is that the guidelines to develop R packages write in the section '6.3 Random number generation' that "The random number generator is private to R; there is no way to select the kind of RNG or set the seed except by evaluating calls to the R functions." The only way I see to get around this is to set the seed in R, run 1 trajectory in C, get results back in R, increment the seed in R, run a 2nd trajectory in C with this new seed, add the new results to the previous one in R, and repeat this e.g. 1000 times. Does this sound fine or should I be concerned that calling the C library so many times may slow down the computation (even if the library is only loaded 1 time at the beginning), e.g. is there a substantial overhead in interfacing from R to C and back? Alternatively, is there a hack to get access by force to the private RNG in R from C and set its seed? This way, I could call the C code only 1 time and run the 1000 trajectories within C, updating the seed in R for each new trajectory (this is what I did when I previously used the GSL). Thanks for any advice on this! Guillaume ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel