summaryrefslogtreecommitdiff
path: root/mwc-probability.cabal
blob: a672c15cb3139f3dcb1f0405aa530b04c2ccc89d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
name:                mwc-probability
version:             2.3.1
homepage:            http://github.com/jtobin/mwc-probability
license:             MIT
license-file:        LICENSE
author:              Jared Tobin, Marco Zocca
maintainer:          jared@jtobin.ca, zocca.marco gmail
category:            Math
build-type:          Simple
cabal-version:       >= 1.10
tested-with:         GHC == 8.0.2, GHC == 8.2.2 , GHC == 8.4.2, GHC == 8.6.5,
                     GHC == 8.8.3
synopsis:            Sampling function-based probability distributions.
description:

  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] to uniform over [1, 2]
  > fmap succ uniform
  .
  Sequence distributions together using bind:
  .
  > -- a beta-binomial compound 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
extra-source-files:  README.md
                     CHANGELOG

Source-repository head
  Type:     git
  Location: http://github.com/jtobin/mwc-probability.git

library
  exposed-modules:     System.Random.MWC.Probability
  default-language:    Haskell2010
  hs-source-dirs:      src
  build-depends:
      base          >=  4.8 && < 6
    , containers    >=  0.6
    , mwc-random    >   0.13 && < 0.16
    , primitive     >=  0.6 && < 1.0
    , transformers  >=  0.5 && < 1.0