Page
Library
Module
Module type
Parameter
Class
Class type
Source
Random5oSourcePseudo-random number generators (PRNG).
With multiple domains, each domain has its own generator that evolves independently of the generators of other domains. When a domain is created, its generator is initialized by splitting the state of the generator associated with the parent domain.
In contrast, all threads within a domain share the same domain-local generator. Independent generators can be created with the Random5.split function and used with the functions from the Random5.State module.
Initialize the domain-local generator, using the argument as a seed. The same seed will always yield the same sequence of numbers.
Same as Random5.init but takes more data as seed.
Initialize the domain-local generator with a random seed chosen in a system-dependent way. If /dev/urandom is available on the host machine, it is used to provide a highly random initial seed. Otherwise, a less random seed is computed from system parameters (current time, process IDs, domain-local state).
Return 30 random bits in a nonnegative integer.
Random5.int bound returns a random integer between 0 (inclusive) and bound (exclusive). bound must be greater than 0 and less than 230.
Random5.full_int bound returns a random integer between 0 (inclusive) and bound (exclusive). bound may be any positive integer.
If bound is less than 230, Random5.full_int bound is equal to Random5.int bound. If bound is greater than 230 (on 64-bit systems or non-standard environments, such as JavaScript), Random5.full_int returns a value, where Random5.int raises Invalid_argument.
Random5.int32 bound returns a random integer between 0 (inclusive) and bound (exclusive). bound must be greater than 0.
Random5.nativeint bound returns a random integer between 0 (inclusive) and bound (exclusive). bound must be greater than 0.
Random5.int64 bound returns a random integer between 0 (inclusive) and bound (exclusive). bound must be greater than 0.
Random5.float bound returns a random floating-point number between 0 and bound (inclusive). If bound is negative, the result is negative or zero. If bound is 0, the result is 0.
Random5.bool () returns true or false with probability 0.5 each.
Random5.bits32 () returns 32 random bits as an integer between Int32.min_int and Int32.max_int.
Random5.bits64 () returns 64 random bits as an integer between Int64.min_int and Int64.max_int.
Random5.nativebits () returns 32 or 64 random bits (depending on the bit width of the platform) as an integer between Nativeint.min_int and Nativeint.max_int.
The functions from module State manipulate the current state of the random generator explicitly. This allows using one or several deterministic PRNGs, even in a multi-threaded program, without interference from other parts of the program.
Return the current state of the domain-local generator used by the basic functions.
Set the state of the domain-local generator used by the basic functions.
Draw a fresh PRNG state from the current state of the domain-local generator used by the default functions. See Random5.State.split.