An embedded and charset-unspecified text was scrubbed... Name: not available Url: https://stat.ethz.ch/pipermail/r-devel/attachments/20060105/e9ecd8a9/attachment.pl
random seed question
2 messages · Tib, Duncan Murdoch
On 1/5/2006 11:44 AM, Tib wrote:
Greetings, I am trying to write a C++ subroutine of my random number generator. Based on tutorial in Writing R Extensions, one should call GetRNGstate() before and PutRNGstate() after calling R's random variate generation routines. Now suppose my function would generate n(n>1) numbers by a loop, do I need to call these two functions at each iteration? This certainly increases computation burden (although indiscernible in my case). But if I only call them once (outside the loop), will the quality of my random numbers be reduced because of serial correlations in RNG algorithms? I do comparisons between two methods, no significant difference is found. How do you guys write RNG functions? Any other specific reasons? Thanks,
Call them once, outside the loop. What they do is move the RNG state between the R workspace and a place where the C functions can use it. Wrapping each call in the loop in those calls will just generate a lot of unnecessary moves. Not doing the calls, or not pairing them up properly, is the dangerous thing that would lead to damage to the RNG algorithms, because the state would not be updated properly. Duncan Murdoch