double MSfUnifRand (void)
void MSrandSeed (int seed)


Generate a uniformly distributed pseudo-random value
Reseed the uniform pseudo-random value


This routine generates uniformly distributed pseudo-random numbers. The multiplicative congruential method is used to generate integer pseudo-random numbers, is = (a*is) % m. The values a=16807 and m=2147483647 are used. These values have been shown to give good results. Further, the values generated are shuffled to give better serial correlation properties. The pseudo-random number generation routine is self initializing, but if a different sequence of pseudo-random values is desired, the routine MSrandSeed can be used to supply a starting (seed) value.

W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery, "Numerical Recipes in C" (2nd ed.) (p. 280), Cambridge University Press, 1992.


<- double MSfUnifRand
Uniform deviate with values between 0 and 1, exclusive of the end points.
-> int seed
Seed value. A positive seed value sets the pseudo-random generation to a new sequence. A zero value sets the actual seed to a value based on the current time. The default sequence can be restarted by setting the seed value to 12345.

Author / revision

P. Kabal / Revision 1.18 2003/05/09

See Also


Main Index libtsp