# The probable package

Easy and reasonably efficient probabilistic programming and random generation

This library gives a common language to speak about
probability distributions and
random generation, by wrapping both, when necessary,
in a `RandT` monad defined in `Math.Probable.Random`.
This module also provides a lot of useful little
combinators for easily describing how random values for your
types should be generated.

In `Math.Probable.Distribution`, you'll find functions for generating
random values that follow any distribution supported by
mwc-random.

In `Math.Probable.Distribution.Finite`, you'll find an adaptation
of Eric Kidd's work on probability monads (from
here).

You may want to check the examples bundled with this package, viewable online at https://github.com/alpmestan/probable/tree/master/examples. One of these examples is simple enough to be worth reproducing here.

module Main where import Control.Applicative import Control.Monad import Math.Probable import qualified Data.Vector.Unboxed as VU data Person = Person Int -- ^ age Double -- ^ weight (kgs) Double -- ^ salary (e.g euros) deriving (Eq, Show) person :: RandT IO Person person = Person <$> uniformIn (1, 100) <*> uniformIn (2, 130) <*> uniformIn (500, 10000) randomPersons :: Int -> IO [Person] randomPersons n = mwc $ listOf n person randomDoubles :: Int -> IO (VU.Vector Double) randomDoubles n = mwc $ vectorOf n double main :: IO () main = do randomPersons 10 >>= mapM_ print randomDoubles 10 >>= VU.mapM_ print

Please report any feature request or problem, either by email or through github's issues/feature requests.

[Skip to Readme]

## Properties

Versions | 0.1.0.0, 0.1.1, 0.1.2 |
---|---|

Dependencies | base (>=4.5 && <4.10), mtl, mwc-random (>=0.10), primitive, statistics (>=0.10), transformers (>=0.3), vector (>=0.10) [details] |

License | BSD3 |

Copyright | 2014-2016 Alp Mestanogullari |

Author | Alp Mestanogullari |

Maintainer | alpmestan@gmail.com |

Stability | Unknown |

Category | Math, Statistics |

Home page | http://github.com/alpmestan/probable |

Bug tracker | http://github.com/alpmestan/probable/issues |

Source repository | head: git clone https://github.com/alpmestan/probable.git |

Uploaded | Fri Aug 26 23:28:57 UTC 2016 by AlpMestanogullari |

Distributions | NixOS:0.1.2 |

Downloads | 431 total (7 in the last 30 days) |

Votes | |

Status | Docs available [build log] Last success reported on 2016-08-26 [all 1 reports] |

## Modules

[Index]

## Downloads

- probable-0.1.2.tar.gz [browse] (Cabal source package)
- Package description (included in the package)