[R] unif_rand() and exp_rand()

Paul Y. Peng ypeng at math.mun.ca
Sun Nov 24 22:17:36 CET 2002

Dear R-users:

Recently I found my simulation run into an apparently infinite loop.
After a few days of tracing and chasing, I believe it is caused by
the built-in unif_rand() and exp_rand() functions: unif_rand() can
produce a value of 0 which causes the following part of exp_rand()
running into an infinity loop

    u = unif_rand();
    for (;;) {
    u += u;
    if (u > 1.0)
    a += q[0];

The way I use R is slightly non-standard: I run the program in
R 1.3.1 for Linux, and my program contains the C code of
exp_rand() I grabbed from R 1.5.1 source. I am not sure whether
the problem is caused by the mixed versions of unif_rand() and
exp_rand(). If they are all the same in the two versions, then
exp_rand() always has potential to run into an infinite loop if
unif_rand() is allowed to have zero values. Does anybody
encounter similar problem?

What one believes to be true either is true or becomes true.
                -- John Lilly
  Paul Y. Peng, PhD                   Web: www.math.mun.ca/~ypeng
  Department of Mathematics and Statistics    Fax: (709) 737 3010
  Memorial University of Newfoundland       Phone: (709) 737 8080
  St. John's, NL A1C 5S7, Canada        E-mail: ypeng at math.mun.ca
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list