See my reply at the end of the email. > > I'd like to generate thousands of normal numbers from my C function using > > the C API functions provided R. I have two options: > > > > 1. double norm_rand(); (page 61 of R extension 1.8.1) > > 2. double rnorm(double mu, double sigma); (page 58 of R extension 1.8.1) > > Page numbers depend on the paper size you used (and I guess you didn't use > the world standard A4) but what I guess is your page 61 says > > See Random numbers, for the protocol in using the random-variate > routines. > > and that refers you back to page 58. > > > If my understanding of R-exts is correct, then I only need to call > > GetRNGstate once, and then call 1000 norm_rand, and then call > > PutRNGstate once for the 1st option. > > > > For the 2nd option, I have to call 1000 times for each of GetRNGstate, > > rnorm, and PutRNGstate. > > That is *not* what the manual says. Just the same as 1). >
Hi Prof Ripley Thank you for the answers. Sorry for the misconfusion of the pages numbers as the "local standard" here is using "letter" size, not "A4". The following is the last paragraph above section 6.4 The C code behind R's rxxx functions can be accessed by including the header file Rmath.h ; See Section 5.7.1 [Distribution functions], page 61. Those calls generate a single variate and should also be enclosed in calls to GetRNGstate and PutRNGstate. Note the "*** generate a single variate and should also be enclosed in calls to GetRNGstate***" in the last sentence. That's why I'm suspecting I have to use the method 2. Probably I have misunderstood this sentence. Yongchao ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
