BatRandom.StateManipulate the current state of the random generator.
This allows using one or several deterministic PRNGs, even in a multi-threaded program, without interference from other parts of the program.
val make : int array -> tCreate a new state and initialize it with the given seed.
val make_self_init : unit -> tCreate a new state and initialize it with a system-dependent low-entropy seed.
val bits : t -> intval int : t -> int -> intval full_int : t -> int -> intval int_in_range : t -> min:int -> max:int -> intval int32 : t -> Stdlib.Int32.t -> Stdlib.Int32.tval int32_in_range : t -> min:int32 -> max:int32 -> int32val nativeint : t -> Stdlib.Nativeint.t -> Stdlib.Nativeint.tval nativeint_in_range : t -> min:nativeint -> max:nativeint -> nativeintval int64 : t -> Stdlib.Int64.t -> Stdlib.Int64.tval int64_in_range : t -> min:int64 -> max:int64 -> int64val float : t -> float -> floatval bool : t -> boolval char : t -> charThese functions are the same as the basic functions, except that they use (and update) the given PRNG state instead of the default one.
val bits32 : t -> Stdlib.Int32.tval bits64 : t -> Stdlib.Int64.tval nativebits : t -> Stdlib.Nativeint.tDraw a fresh PRNG state from the given PRNG state. (The given PRNG state is modified.) The new PRNG is statistically independent from the given PRNG. Data can be drawn from both PRNGs, in any order, without risk of correlation. Both PRNGs can be split later, arbitrarily many times.
val to_binary_string : t -> stringval of_binary_string : string -> t