Module Ppl__.Helpers

Samples

val sample_mean : ?⁠n:int -> float Ppl.Dist.dist -> float
val sample_variance : ?⁠n:int -> float Ppl.Dist.dist -> float
val take_k_samples : int -> 'a Ppl.Dist.dist -> 'a array
val unduplicate : ('a * Ppl.Dist.prob) list -> ('a * Ppl.Dist.prob) list

Removes duplicates and sums the probabilities associated so that each value appears once

val flatten : (('a * Ppl.Dist.prob) list * Ppl.Dist.prob) list -> ('a * Ppl.Dist.prob) list
val normalise : ('a * Ppl.Dist.prob) list -> ('a * Ppl.Dist.prob) list
val weighted_dist : ?⁠n:int -> 'a Ppl.Dist.dist -> ('a, int) Core.Map.Poly.t

Printing

val print_exact_exn : (module Base.Stringable.S with type t = 'a) -> 'a Ppl.Dist.dist -> unit
val print_exact_bool : bool Ppl.Dist.dist -> unit
val print_exact_int : int Ppl.Dist.dist -> unit
val print_exact_float : float Ppl.Dist.dist -> unit

Others

val time : (unit -> 'a) -> 'a * float
val memo : ('a -> 'b) -> 'a -> 'b
val memo_no_poly : (module Base__.Hashtbl_intf.Key.S with type t = 'a) -> ('a -> 'b) -> 'a -> 'b