Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
executable file 57 lines (52 sloc) 2.11 KB
Name: normaldistribution
License: BSD3
License-File: LICENSE
Copyright: Bjorn Buckwalter 2011
Author: Bjorn Buckwalter
Stability: Stable
Minimum fuss normally distributed random values.
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 Box-Muller method to generate
normally distributed values from uniformly distributed random values.
If more than one sample is needed taking samples off an infinite
list (created by e.g. 'normals') will be roughly twice as efficient
as repeatedly generating individual samples with e.g. 'normal'.
Category: Math, Statistics
Build-Type: Simple
Build-Depends: base < 5, random < 2
Exposed-Modules: Data.Random.Normal
Extra-source-files: README, LICENSE