The mwc-random package

[ Tags: 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]

Properties

Versions 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
Dependencies base (<5), primitive, time, vector (>=0.5) [details]
License BSD3
Copyright 2009, 2010 Bryan O'Sullivan
Author Bryan O'Sullivan <bos@serpentine.com>
Maintainer Bryan O'Sullivan <bos@serpentine.com>
Category Math, Statistics
Home page http://bitbucket.org/bos/mwc-random
Bug tracker http://bitbucket.org/bos/mwc-random/issues
Source repository head: hg clone http://bitbucket.org/bos/mwc-random
Uploaded Tue Feb 1 05:05:42 UTC 2011 by BryanOSullivan
Distributions Arch:0.13.6.0, Debian:0.13.3.2, Fedora:0.13.5.0, FreeBSD:0.13.3.2, LTSHaskell:0.13.6.0, NixOS:0.13.6.0, Stackage:0.13.6.0, Tumbleweed:0.13.6.0
Downloads 88040 total (3281 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for mwc-random-0.8.0.3

[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 bitbucket issue tracker.

Master Mercurial repository:

  • hg clone http://bitbucket.org/bos/mwc-random

There's also a git mirror:

  • git clone git://github.com/bos/mwc-random.git

(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.