Module Base__Random
Pseudo-random number generation.
This is a wrapper of the standard library's Random library, though it does not share state with that library.
Basic functions
val init : int -> unitInitialize the generator, using the argument as a seed. The same seed will always yield the same sequence of numbers.
val self_init : ?allow_in_tests:bool -> unit -> unitInitialize the generator with a more-or-less random seed chosen in a system-dependent way. By default,
self_initis disallowed in inline tests, as it's often used for no good reason and it just creates nondeterministic failures for everyone. Passing~allow_in_tests:trueremoves this restriction in case you legitimately want nondeterministic values, like inFilename.temp_dir.
val bits : unit -> intReturn 30 random bits in a nonnegative integer.
- before 3.12.0
used a different algorithm (affects all the following functions)
val int : int -> intRandom.int boundreturns a random integer between 0 (inclusive) andbound(exclusive).boundmust be greater than 0.
val int32 : int32 -> int32Random.int32 boundreturns a random integer between 0 (inclusive) andbound(exclusive).boundmust be greater than 0.
val nativeint : nativeint -> nativeintRandom.nativeint boundreturns a random integer between 0 (inclusive) andbound(exclusive).boundmust be greater than 0.
val int64 : int64 -> int64Random.int64 boundreturns a random integer between 0 (inclusive) andbound(exclusive).boundmust be greater than 0.
val float : float -> floatRandom.float boundreturns a random floating-point number between 0 (inclusive) andbound(exclusive). Ifboundis negative, the result is negative or zero. Ifboundis 0, the result is 0.
val int_incl : int -> int -> intProduces a random value between the given inclusive bounds. Raises if bounds are given in decreasing order.
val int32_incl : int32 -> int32 -> int32val nativeint_incl : nativeint -> nativeint -> nativeintval int64_incl : int64 -> int64 -> int64val float_range : float -> float -> floatProduces a value between the given bounds (inclusive and exclusive, respectively). Raises if bounds are given in decreasing order.
val char : unit -> charReturn a uniformly-chosen
char.
val ascii : unit -> charReturn a uniformly-chosen
charin the ASCII range.
Advanced functions
module State : sig ... endThe functions from module
Statemanipulate 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.
val set_state : State.t -> unitSets the state of the generator used by the basic functions.