# Module Std.Sampler

    module Sampler: Sampler

    type 'a t

a compiled finite discrete probability distribution that supports constant time sampling

    val create : ('a * float) list -> 'a t

`create dist` compiles a discrete probability distribution into a form supporting constant-time sampling. The running time is O(N) where N = `List.length dist`. `dist` may be either a probability distribution (all floats are non-negative and sum to 1) or, more generally, a histogram in which frequencies are interpreted as probabilities.

    val sample : ?state:Core.Std.Random.State.t -> 'a t -> 'a

randomly sample the distribution in constant time