Module Random.State


module Random.State: sig .. end
Manipulate 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.


type t 
The type of PRNG states.
val make : int array -> t
Create a new state and initialize it with the given seed.
val make_self_init : unit -> t
Create a new state and initialize it with a system-dependent low-entropy seed.
val copy : t -> t
Return a copy of the given state.
val bits : t -> int
val int : t -> int -> int
val int32 : t -> Int32.t -> Int32.t
val nativeint : t -> Native_int.t -> Native_int.t
val int64 : t -> Int64.t -> Int64.t
val float : t -> float -> float
val bool : t -> bool
val char : t -> char
val enum_bits : t -> unit -> int Enum.t
val enum_int : t -> int -> int Enum.t
val enum_bool : t -> unit -> bool Enum.t
val enum_float : t -> float -> float Enum.t
val enum_int32 : t -> Int32.t -> Int32.t Enum.t
val enum_int64 : t -> Int64.t -> Int64.t Enum.t
val enum_nativeint : t -> Native_int.t -> Native_int.t Enum.t
val enum_char : t -> unit -> char Enum.t

These functions are the same as the basic functions, except that they use (and update) the given PRNG state instead of the default one.

Boilerplate code


S-Expressions

Note: Exceptionnally, the S-Expressions obtained from the following functions are not portable between versions of OCaml. They remain portable between architectures, however.

val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t