@hackage / mwc-probability

Sampling function-based probability distributions.

Latest2.3.1

About

Metadata

  • Last updated , by JaredTobin
  • License MIT
  • Categories Mathematics
  • Maintained by: jared@jtobin.ca, zocca.marco gmail

  • Lottery factor: 0

Links

Installation

Tested Compilers

  1. 8.8.3
  2. 8.6.5
  3. 8.4.2
  4. 8.2.2
  5. 8.0.2

Readme

mwc-probability

Build Status Hackage Version MIT License

Sampling function-based probability distributions.

A simple probability distribution type, where distributions are characterized by sampling functions.

This implementation is a thin layer over mwc-random, which handles RNG state-passing automatically by using a PrimMonad like IO or ST s under the hood.

Examples

  • Transform a distribution's support while leaving its density structure invariant:

    -- uniform over [0, 1] transformed to uniform over [1, 2]
    succ <$> uniform
  • Sequence distributions together using bind:

    -- a beta-binomial composite distribution
    beta 1 10 >>= binomial 10
  • Use do-notation to build complex joint distributions from composable, local conditionals:

    hierarchicalModel = do
      [c, d, e, f] <- replicateM 4 (uniformR (1, 10))
      a <- gamma c d
      b <- gamma e f
      p <- beta a b
      n <- uniformR (5, 10)
      binomial n p

Check out the haddock-generated docs on Hackage for other examples.

Etc.

PRs and issues welcome.