Module State
: sigendtypet
The type of PRNG states.
valmake : intarray->t
Create a new state and initialize it with the given seed.
valmake_self_init : unit->t
Create a new state and initialize it with a random seed chosen in a system-dependent way. The seed is
obtained as described in Random.self_init .
valcopy : t->t
Return a copy of the given state.
valbits : t->intvalint : t->int->intvalfull_int : t->int->intvalint_in_range : t->min:int->max:int->intvalint32 : t->Int32.t->Int32.tvalint32_in_range : t->min:int32->max:int32->int32valnativeint : t->Nativeint.t->Nativeint.tvalnativeint_in_range : t->min:nativeint->max:nativeint->nativeintvalint64 : t->Int64.t->Int64.tvalint64_in_range : t->min:int64->max:int64->int64valfloat : t->float->floatvalbool : t->boolvalbits32 : t->Int32.tvalbits64 : t->Int64.tvalnativebits : t->Nativeint.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.
valsplit : t->t
Draw 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.
Since 5.0
valto_binary_string : t->string
Serializes the PRNG state into an immutable sequence of bytes. See Random.State.of_binary_string for
deserialization.
The string type is intended here for serialization only, the encoding is not human-readable and may not
be printable.
Note that the serialization format may differ across OCaml versions.
Since 5.1
valof_binary_string : string->t
Deserializes a byte sequence obtained by calling Random.State.to_binary_string . The resulting PRNG state
will produce the same random numbers as the state that was passed as input to
Random.State.to_binary_string .
Since 5.1
RaisesFailure if the input is not in the expected format.
Note that the serialization format may differ across OCaml versions.
Unlike the functions provided by the Marshal module, this function either produces a valid state or fails
cleanly with a Failure exception. It can be safely used on user-provided, untrusted inputs.
OCamldoc 2025-06-12 Random.State(3o)