mwc-random: Fast, high quality pseudo random number generation

[ bsd3, library, math, statistics ] [ Propose Tags ]

This package contains code for generating high quality random numbers that follow either a uniform or normal distribution. The generated numbers are suitable for use in statistical applications.

The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222) multiply-with-carry generator, which has a period of 2^8222 and fares well in tests of randomness. It is also extremely fast, between 2 and 3 times faster than the Mersenne Twister.

Compared to the mersenne-random package, this package has a more convenient API, is faster, and supports more statistical distributions.


[Skip to Readme]

Modules

[Index]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.4.1, 0.4.1.1, 0.5.0.0, 0.5.1.1, 0.5.1.2, 0.5.1.3, 0.5.1.4, 0.6.0.0, 0.7.0.0, 0.7.0.1, 0.8.0.0, 0.8.0.1, 0.8.0.2, 0.8.0.3, 0.8.0.5, 0.9.0.0, 0.10.0.0, 0.10.0.1, 0.11.0.0, 0.12.0.0, 0.12.0.1, 0.13.0.0, 0.13.1.0, 0.13.1.1, 0.13.1.2, 0.13.2.0, 0.13.2.2, 0.13.3.0, 0.13.3.1, 0.13.3.2, 0.13.4.0, 0.13.5.0, 0.13.6.0, 0.14.0.0, 0.15.0.0, 0.15.0.1, 0.15.0.2 (info)
Dependencies base (<5), primitive (<0.6), time, vector (>=0.5) [details]
License BSD-3-Clause
Copyright 2009, 2010 Bryan O'Sullivan
Author Bryan O'Sullivan <bos@serpentine.com>
Maintainer Bryan O'Sullivan <bos@serpentine.com>
Revised Revision 1 made by HerbertValerioRiedel at 2018-08-31T14:48:52Z
Category Math, Statistics
Home page http://darcs.serpentine.com/mwc-random
Uploaded by BryanOSullivan at 2010-07-12T23:47:54Z
Distributions Arch:0.15.0.2, Debian:0.14.0.0, Fedora:0.15.0.2, FreeBSD:0.13.3.2, LTSHaskell:0.15.0.2, NixOS:0.15.0.2, Stackage:0.15.0.2, openSUSE:0.15.0.2
Reverse Dependencies 123 direct, 4582 indirect [details]
Downloads 154141 total (289 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for mwc-random-0.5.1.4

[back to package description]
Efficient, general purpose pseudo-random number generation
----------------------------------------------------------

This package provides the System.Random.MWC module, a Haskell library
for generating high-quality pseudo-random numbers in a space- and
time-efficient way.


Performance
-----------

This library has been carefully optimised for high performance.  To
obtain the best runtime efficiency, it is imperative to compile
libraries and applications that use this library using a high level of
optimisation.

Suggested GHC options:

  -O -fvia-C -funbox-strict-fields

To illustrate, here are the times (in seconds) to generate and sum 250
million random Word32 values, on a laptop with a 2.4GHz Core2 Duo
P8600 processor, running Fedora 11 and GHC 6.10.3:

  no flags   200+
  -O           1.249
  -O -fvia-C   0.991

As the numbers above suggest, compiling without optimisation will
yield unacceptable performance.


Get involved!
-------------

Please feel welcome to contribute new code or bug fixes.  You can
fetch the source repository from here:

darcs get http://darcs.serpentine.com/mwc-random


Authors
-------

Bryan O'Sullivan <bos@serpentine.com>