sig
type t
external create : unit -> Gmp__Random.t = "mlgmp_random_create"
external create_lc_2exp : Gmp.z -> int -> int -> Gmp__Random.t
= "mlgmp_random_create_lc_2exp"
external create_lc_2exp_size : int -> Gmp__Random.t
= "mlgmp_random_create_lc_2exp_size"
external create_mt : unit -> Gmp__Random.t = "mlgmp_random_create_mt"
external seed_int : Gmp__Random.t -> int -> unit = "mlgmp_random_seed_int"
external seed_z : Gmp__Random.t -> Gmp.z -> unit = "mlgmp_random_seed_z"
val make_int : int -> Gmp__Random.t
val make_self_init : unit -> Gmp__Random.t
val make_z : Gmp.z -> Gmp__Random.t
val make : int array -> Gmp__Random.t
external copy : Gmp__Random.t -> Gmp__Random.t = "mlgmp_random_copy"
external int_bits : Gmp__Random.t -> int -> int = "mlgmp_random_int_bits"
val bits : Gmp__Random.t -> int
external int : Gmp__Random.t -> int -> int = "mlgmp_random_int"
external int32 : Gmp__Random.t -> int32 -> int32 = "mlgmp_random_int32"
external int64 : Gmp__Random.t -> int64 -> int64 = "mlgmp_random_int64"
external nativeint : Gmp__Random.t -> nativeint -> nativeint
= "mlgmp_random_nativeint"
val bool : Gmp__Random.t -> bool
external float_bits : Gmp__Random.t -> int -> float
= "mlgmp_random_float_bits"
val float : Gmp__Random.t -> float -> float
val float_exclusive : Gmp__Random.t -> float -> float
val float_inclusive : Gmp__Random.t -> float -> float
external z : Gmp__Random.t -> Gmp.z -> Gmp.z = "mlgmp_random_z"
external f_bits : Gmp__Random.t -> int -> Gmp.f = "mlgmp_random_f_bits"
external f : Gmp__Random.t -> prec:int -> Gmp.f -> Gmp.f = "mlgmp_random_f"
val f_exclusive : Gmp__Random.t -> prec:int -> Gmp.f -> Gmp.f
val f_inclusive : Gmp__Random.t -> prec:int -> Gmp.f -> Gmp.f
end