libcoyotl - A Library of C++ Tools

Created by Scott Robert Ladd at Coyote Gulch Productions.


Public Member Functions | List of all members
libcoyotl::mwc1038 Class Reference

Implements MWC1038, a peudorandom number generator. More...

#include <mwc1038.h>

Inheritance diagram for libcoyotl::mwc1038:
libcoyotl::prng

Public Member Functions

 mwc1038 ()
 Default constructor, reading seed from/dev/urandom or the time. More...
 
 mwc1038 (uint32_t seed)
 Default constructor, with optional seed. More...
 
virtual void init (uint32_t seed)
 Initializes the generator with "seed". More...
 
virtual uint32_t get_rand ()
 Get the next integer. More...
 
- Public Member Functions inherited from libcoyotl::prng
 prng ()
 Default constructor, reading seed from/dev/urandom or the time. More...
 
 prng (uint32_t seed)
 Default constructor, with optional seed. More...
 
uint32_t get_seed ()
 Returns the original seed value. More...
 
uint32_t get_rand_range (uint32_t lo, uint32_t hi)
 Get the next integer in the range [lo,hi]. More...
 
size_t get_rand_index (size_t length)
 Get the next random value as a size_t index. More...
 
double get_rand_real1 ()
 Get the next number in the range [0,1]. More...
 
double get_rand_real2 ()
 Get the next number in the range [0,1) More...
 
double get_rand_real3 ()
 Get the next number in the range (0,1) More...
 
double get_rand_real53 ()
 Get the next number in the range [0,1) More...
 

Additional Inherited Members

- Protected Attributes inherited from libcoyotl::prng
uint32_t m_seed
 Initialization seed.
 

Detailed Description

The mwc1038 class encapsulates a multiply-with-carry algorithm for psuedorandom number generation, as suggested by George Marsaglia in a posting found here:

http://forums.wolfram.com/mathgroup/archive/2003/Jan/msg00355.html

Constructor & Destructor Documentation

libcoyotl::mwc1038::mwc1038 ( )

The constructor initializes the prng seed from either the time or some stochastic source such as /dev/random or /dev/urandom.

libcoyotl::mwc1038::mwc1038 ( uint32_t  seed)

The constructor uses an explicit value for the seed.

Parameters
seed- Seed value used to "start" or seed the generator

Member Function Documentation

virtual uint32_t libcoyotl::mwc1038::get_rand ( )
virtual

Returns the next uint32_t in sequence.

Returns
A pseudorandom uint32_t value

Implements libcoyotl::prng.

virtual void libcoyotl::mwc1038::init ( uint32_t  seed)
virtual

Resets the generator using the provided seed value.

Parameters
seed- Seed value used to "start" or seed the generator

Reimplemented from libcoyotl::prng.


The documentation for this class was generated from the following file:

© 1996-2005 Scott Robert Ladd. All rights reserved.
HTML documentation generated by Dimitri van Heesch's excellent Doxygen tool.