tim@bhpmrl.oz.au (Tim Monks) (08/22/90)
Can someone at SGI or elsewhere please provide me with some further information on the pseudo-random number generators rand(3C), *rand48(3C), and random(3B) in addition to what is available in the rather scant manual pages. I am particularly interested in the algorithm used for random(3B) and how it compares to the Winchman-Hill (combination of 3 multiplicative congruential rngs) and the newer Marsaglia-Zaman-James generator (a combination of a lagged Fibonacci sequence and an arithmetic subtractive generator). My application calls for a rng with good properties when taken as n-tuples, n = 10-25. Here's what I know about them already: rand(3C): ======== Manual pages info : A multiplicative congruential rng with period 2^32 My suppositions : 1. The form is probably : x(n+1)=x(n)*16807 mod (2^31-1) because this is most popular on 32 bit machines. 2. Low order bits are less random than they should be. 3. n-tuples formed from this generator are apparently uniform for low n (a lattice diagram on the unit square showing pairs (x(n), x(n-1)) has no visible structure), but for larger n, the tuples lie on a limited number of hyperplanes (Marsaglia effect). This implies that the rng should not be used in high- dimensional (>2) simulations. *rand48(3C): =========== Manual pages info : A multiplicative congruential rng of the form : x(n+1) = (a.x(n) + c) mod (2^48) where the constants a & c have default values of a = 3740067437, c = 11, though these can be changed. My suppositions : 1. Suffers same inherent problems as rand(3C), though these will be less obvious because of the longer period (which is ?). random(3B) ========== Manual pages info : A "non-linear additive feedback rng employing a default table of size 31 long ints" My suppositions : 1. Because this rng uses more state information than just the previous deviate to generate the new value it should perform better than the previous two in high-dimensional rn generation. My questions: 1. What exactly is the form of it - is there a reference to any works by the the author (Earl T Cohen). 2. Is there any further information on the uniformity of n-tuples taken from this generator ? 3. What sort of tests are used to test uniformity of n-tuples where n is too large to visualize ? 4. Comparisons with W-H and M-Z-J generators mentioned above ? Thanks in advance for any pointers, tips &/c... -- Dr. Tim Monks Image Processing & Data Analysis Group | (direct) (+61-3)566-7448 BHP Melbourne Research Laboratories | (switch) (+61-3)560-7066 245 Wellington Rd, Mulgrave, 3170, | (fax) (+61-3)561-6709 AUSTRALIA | (EMAIL) tim@merlin.bhpmrl.oz.au