package prbnmcn-stats

  1. Overview
  2. Docs

Module Gen.MakeSource

Implementation of generative distributions parameterized by stateful RNG implementation.

Parameters

Signature

Sourcetype state = RNG.t

Follows the module type of a sampling-based monad

include Basic_structures.Basic_intf.Monad with type 'a t = (state, 'a) Stats_intf.gen and type 'a res = (state, 'a) Stats_intf.gen
Sourcetype 'a t = (state, 'a) Stats_intf.gen

'a t is the type of computations of type 'a

Sourcetype 'a res = (state, 'a) Stats_intf.gen

'a res is the outcome of running a computation of type 'a

Sourceval return : 'a -> 'a t

return x injects a value x as a computation

Sourceval bind : 'a t -> ('a -> 'b t) -> 'b t

Monadic bind

Sourceval map : 'a t -> ('a -> 'b) -> 'b t

Functorial map

Sourceval run : 'a t -> 'a res

Running a monadic computation

Sourcemodule Infix : sig ... end
Sourceval iid : 'a t -> 'a Seq.t t

iid gen transforms a sampler into a sequence sampler.

Sourceval float : float -> float t

float bound samples uniformly in 0; bound

Sourceval int : int -> int t

int bound samples uniformly in 0; bound-1

Sourceval bool : bool t

bool samples a boolean uniformly

Sourceval uniform : 'a array -> 'a t

uniform elts samples an element of the elts array by sampling an index uniformly.

Sourceval bernoulli : float -> bool t

bernoulli alpha samples true with probability alpha.

Sourceval geometric : float -> int t

geometric p samples a nonnegative integer according to the geometric law of parameter p.

Sourceval subsample : n:int -> 'a t -> 'a t

subsample ~n gen samples one out of n samples from gen.

Sourceval of_empirical : 'a Stats_intf.emp -> 'a t

of_empirical emp samples from emp matching exactly the empirical frequencies.

Sourceval exponential : rate:float -> float t

Exponential distribution via inverse CDF.

Sourceval box_muller : mean:float -> std:float -> (float * float) t

Gaussian distribution via Box-Muller transform. Returns a pair of independent gaussian variates with prescribed mean and standard deviation.

Sourceval gaussian : mean:float -> std:float -> float t

Gaussian distribution (wrapper over box-muller transform).

Sourceval poisson : lambda:float -> int t

Poisson distribution via inverse transform. Consider using other methods for large lambda.

Sourceval range : Stats_intf.range -> float t

Samples uniformly in the given range.

Sourceval gamma : shape:float -> scale:float -> float t

Gamma distribution.

Sourceval categorical : ('a * float) array -> 'a t

Categorical distribution. Total mass need not be one. Does not aggregate mass of equal elements.

  • raises Invalid_argument

    if some weights are negative or if the total mass is zero.

Sourceval without_replacement : int -> 'a list -> ('a list * 'a list) t

sample_without_replacement n l samples a subset of size n from l without replacement.

Sourcemodule Rational : sig ... end
OCaml

Innovation. Community. Security.