Message-ID: <x2k7he7xd6.fsf@biostat.ku.dk>
Date: 2003-01-09T23:49:02Z
From: Peter Dalgaard
Subject: RNG.c: unif_rand, MARSAGLIA_MULTICARRY (PR#2437)
In-Reply-To: <200301092232.XAA12842@pubhealth.ku.dk>
simardr@IRO.UMontreal.CA writes:
> Full_Name: Richard Simard
> Version:
> OS: Linux
> Submission from: (NULL) (132.204.25.139)
>
>
> In the random number generator MARSAGLIA_MULTICARRY, your algorithm is
> different than the one in the original reference that you give in the R manual:
> Marsaglia in his post to the mailing list {\it sci.stat.math} on September 29,
> 1997.
> The last line in the R program has a ^
> while Marsaglia's algorithm has a +.
> This gives very different random number generators.
>
> The full line in RNG.c is:
> return ((I1 << 16)^(I2 & 0177777)) * i2_32m1; /* in [0,1) */
Did you actually try that?
As far as I can see the first operand will be (32-bit binary)
xxxxxxxxxxxxxxxx0000000000000000
and the other one is
0000000000000000xxxxxxxxxxxxxxxx
so it is the same whether you add them or use bitwise OR or
bitwise XOR.
--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk) FAX: (+45) 35327907