[R] Random numbers

Duncan Murdoch murdoch at stats.uwo.ca
Wed Dec 21 16:10:51 CET 2005


On 12/21/2005 9:47 AM, Carl wrote:
> Hi All.
> I have R code whose functionality is being replicated within a C+ 
> program. The outputs are to be compared to validate the conversion 
> somewhat - however (as is always the case) I have stuffed my code with 
> random number calls.
> 
> Random uniform numbers in C+ are being produced using the (Boost) 
> mersenne-twister generators (mt11213b & mt19937) - which is the default 
> type of generator in R (if I read things correctly). If it was all 
> within R I would just set the seed for reproducibility.
> 
> Basically - how do I specify in C+ for a set of random uniform numbers 
> such that they are the same as from R? I have considered the possibility 
> of storing/using the R generated random numbers in the C+ version for 
> validation purposes - but there are a lot of them, and that strikes me 
> as a generally ugly way of doing things.

I'd say the only reasonable way to do this is to call the R generators 
rather than trying to duplicate them.  R tries hard to keep its 
generators consistent from version to version, but if you have an 
independent implementation of the same algorithm, it's going to be very 
hard to validate that you've really got things exactly identical.

The Writing R Extensions manual tells how to call the R generators from 
other programs.  You can do it without going through interpreted R code, 
so there shouldn't be much in the way of a performance penalty.

Duncan Murdoch




More information about the R-help mailing list