The normaldistribution package

[Tags: bsd3, library]

This purpose of this library is to have a simple API and no dependencies beyond Haskell 98 in order to let you produce normally distributed random values with a minimum of fuss. This library does not attempt to be blazingly fast nor to pass stringent tests of randomness. It attempts to be very easy to install and use while being "good enough" for many applications (simulations, games, etc.). The API builds upon and is largely analogous to that of the Haskell 98 Random module (more recently System.Random).


 (sample,g) = normal  myRandomGen  -- using a Random.RandomGen
 samples    = normals myRandomGen  -- infinite list
 samples2   = mkNormals 10831452   -- infinite list using a seed

In the IO monad:

 sample    <- normalIO
 samples   <- normalsIO  -- infinite list

With custom mean and standard deviation:

 (sample,g) = normal'    (mean,sigma) myRandomGen
 samples    = normals'   (mean,sigma) myRandomGen
 samples2   = mkNormals' (mean,sigma) 10831452
 sample    <- normalIO'  (mean,sigma)
 samples   <- normalsIO' (mean,sigma)

Internally the library uses the Central Limit Theorem to approximate normally distributed values from multiple uniformly distributed random values.


Versions1.0, 1.1,,,
Dependenciesbase (<5), haskell98 (<1.1)
CopyrightBjorn Buckwalter 2011
AuthorBjorn Buckwalter
CategoryMath, Statistics
Home page
Upload dateSat Apr 9 07:09:12 UTC 2011
Uploaded byBjornBuckwalter
Downloads1081 total (205 in last 30 days)



Maintainers' corner

For package maintainers and hackage trustees