[Haskell] ANNOUNCE: normaldistribution-1.0 – Minimum fuss normally distributed random values.
Bjorn Buckwalter
bjorn.buckwalter at gmail.com
Sat Apr 9 09:21:41 CEST 2011
Dear all,
I'm pleased to announce the immediate availability of the
normaldistribution library on hackage:
http://hackage.haskell.org/package/normaldistribution
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).
Pure:
> (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.
Enjoy,
Bjorn
More information about the Haskell
mailing list