mwc-random: Fast, high quality pseudo random number generation
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]
Downloads
- mwc-random-0.10.0.1.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
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
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, 0.15.1.0, 0.15.2.0 (info) |
|---|---|
| Dependencies | base (<5), primitive (<0.6), time , vector (>=0.6.0.2) [details] |
| License | BSD-3-Clause |
| Copyright | 2009, 2010, 2011 Bryan O'Sullivan |
| Author | Bryan O'Sullivan <bos@serpentine.com> |
| Maintainer | Bryan O'Sullivan <bos@serpentine.com> |
| Revised | Revision 1 made by AlexeyKhudyakov at 2015年04月06日T16:54:17Z |
| Category | Math, Statistics |
| Home page | https://github.com/bos/mwc-random |
| Bug tracker | https://github.com/bos/mwc-random/issues |
| Source repo | head: git clone git://github.com/bos/mwc-random head: hg clone https://bitbucket.org/bos/mwc-random |
| Uploaded | by BryanOSullivan at 2011年08月22日T04:18:14Z |
| Distributions | Arch:0.15.2.0, Debian:0.14.0.0, Fedora:0.15.2.0, FreeBSD:0.13.3.2, LTSHaskell:0.15.2.0, NixOS:0.15.2.0, Stackage:0.15.2.0 |
| Reverse Dependencies | 123 direct, 4849 indirect [details] |
| Downloads | 159252 total (132 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.10.0.1
[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 report bugs via the github issue tracker.
Master git git repository:
git clone git://github.com/bos/mwc-random.git
There's also a Mercurial mirror:
hg clone http://bitbucket.org/bos/mwc-random
(You can create and contribute changes using either Mercurial or git.)
Authors
This library is written and maintained by Bryan O'Sullivan, bos@serpentine.com.