# mwc-probability

Sampling function-based probability distributions. http://github.com/jtobin/mwc-probability

 LTS Haskell 14.9: 2.1.0 Stackage Nightly 2019-10-15: 2.1.0 Latest on Hackage: 2.1.0

See all snapshots `mwc-probability` appears in

MIT licensed by
Maintained by

#### Module documentation for 2.1.0

This version can be pinned in stack with:`mwc-probability-2.1.0@sha256:fe7186892a8b1d857ae2266ff4dbaf8a4d9840d0bb267e60bdc56408d3a1cb13,1856`
• System
• System.Random
• System.Random.MWC

# mwc-probability

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.

Depends on 4 packages(full list with versions):
Used by 7 packages in nightly-2019-09-21(full list with versions):
comments powered byDisqus