probable
Version 0.1.0.0 revision 1 uploaded by AlpMestanogullari.
Package meta
- Synopsis
- Easy and reasonably efficient probabilistic programming and random generation
- Description
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.
- Author
- Alp Mestanogullari
- Bug reports
- http://github.com/alpmestan/probable/issues
- Category
- Math, Statistics
- Copyright
- 2014 Alp Mestanogullari
- Homepage
- http://github.com/alpmestan/probable
- Maintainer
- alpmestan@gmail.com
- Package URL
- n/a
- Stability
- n/a