ANNOUNCE: normaldistribution-1.0 – Minimum fuss normally distributed random values.

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

On Sat, 9 Apr 2011, Bjorn Buckwalter wrote:
Internally the library uses the Central Limit Theorem to approximate normally distributed values from multiple uniformly distributed random values.
You may also like to look into the 'dsp' package, that contains some clever algorithms for production of normally distributed random values up to many digits of accuracy. http://hackage.haskell.org/packages/archive/dsp/0.2.1/doc/html/Numeric-Rando... The 'dsp' package is also Haskell 98 but could certainly be split into smaller packages.
participants (2)
-
Bjorn Buckwalter
-
Henning Thielemann