class MS_RANDOM_GEN < $RANDOM_GEN
****
The "minimal standard" generator described in "Random Number Generators: Good Ones are Hard to Find" by Stephen Park and Keith Miller, Communications of the ACM, October 1988, Volume 31, Number 10, p. 1192. Linear congruential, produces a value in `[0.,1.)' including `0.' but not `1.' Any seed value in the range `[1,2147483646]' is equally good.


Flattened version is here

Ancestors
$RANDOM_GEN



Public


Readable Attributes
attr seed:INT;
**** Current state of generator.

Writable Attributes
attr seed:INT;
**** Current state of generator.

Readonly Shareds
shared ms_m:FLTD;
**** `(2^31)-1', prime
shared ms_md:FLTD;
**** to avoid continual recomputation

Writable Shareds
shared ms_m:FLTD;
**** `(2^31)-1', prime
shared ms_md:FLTD;
**** to avoid continual recomputation

Constants
const ms_a:FLTD:=16807.0d;
**** `7^5'

Features
create:SAME
**** A minimal standard generator with `seed=1'.
get:FLTD
**** Pseudo-random value in `[0.,1.)' generated by minimal std generator.
init(nseed:INT)
**** Initialize the generator.