package prbnmcn-dagger

  1. Overview
  2. Docs
Probabilistic programming library

Install

Dune Dependency

Authors

Maintainers

Sources

0.0.1.tar.gz
md5=304d489ed3e9605fcd7fe3f86c2e9dca
sha512=f8f632e381c6b1d111ee8a03e142994f2c59ddabdbb5c3fef86c7c41a95ad4835c4ea4a893fa18e2f6522b92be8fd9b499c12b21a008bc647a85277ba5bccc5e

doc/prbnmcn-dagger/Dagger/Dist/index.html

Module Dagger.DistSource

Distributions

A distribution must be sampleable and must be associated to a density w.r.t. some base measure (which is kept implicit).

Sourcetype 'a dist = private {
  1. sample : RNG.t -> 'a;
  2. ll : 'a -> Log_space.t;
}

'a dist is the type of distributions on the type 'a.

Sourcetype 'a kernel = private {
  1. start : 'a;
  2. sample : 'a -> RNG.t -> 'a;
  3. ll : 'a -> 'a -> Log_space.t;
}

'a kernel is the type of kernels (ie random walks) on the type 'a.

Sourcetype 'a t = private
  1. | Stateless of 'a dist
  2. | Kernel of 'a kernel

A "distribution" as understood by this library is either a kernel or a plain distribution.

Sourceval stateless : (RNG.t -> 'a) -> ('a -> Log_space.t) -> 'a t

Create a distribution from a sampler and a log-density.

Sourceval kernel : 'a -> ('a -> RNG.t -> 'a) -> ('a -> 'a -> Log_space.t) -> 'a t

Create a kernel from an initial point, a kernel and its associated log-density.

Helpers for parameterized distributions and kernels.

Sourceval dist0 : (RNG.t -> 'a) -> ('a -> Log_space.t) -> 'a t
Sourceval dist1 : ('a -> RNG.t -> 'b) -> ('a -> 'b -> Log_space.t) -> 'a -> 'b t
Sourceval dist2 : ('a -> 'b -> RNG.t -> 'c) -> ('a -> 'b -> 'c -> Log_space.t) -> 'a -> 'b -> 'c t
Sourceval kernel1 : ('a -> 'b -> RNG.t -> 'b) -> ('a -> 'b -> 'b -> Log_space.t) -> 'b -> 'a -> 'b t

Combinators on distributions and kernels.

Sourceval iid : int -> 'a t -> 'a array t

iid n dist constructs the n-fold iid distribution where each component is distributed according to dist.

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

conv f g dist transports a distribution along a pair of maps f,g. f,g must both be total. They need not be bijections, though not respecting this additional constraint might cause unspecified behaviours for some inference algorithms..

OCaml

Innovation. Community. Security.