#include <coherence/util/Random.hpp>
Inherits Object.
This class is an implementation of D. H. Lehmer's linear congruential formula as described by Donald E. Knuth in: The Art of Computer Programming, Volume 2, Section 3.2.1.
Public Types | |
typedef spec::Handle | Handle |
Random Handle definition. | |
typedef spec::View | View |
Random View definition. | |
typedef spec::Holder | Holder |
Random Holder definition. | |
Public Member Functions | |
virtual int32_t | nextInt32 (int32_t n) |
Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence. | |
virtual bool | nextBoolean () |
Returns the next pseudorandom, uniformly distributed boolean value from this random number generator's sequence. | |
virtual int32_t | nextInt32 () |
Returns the next pseudorandom, uniformly distributed int32_t value from this random number generator's sequence. | |
virtual int64_t | nextInt64 () |
Returns the next pseudorandom, uniformly distributed int64_t value from this random number generator's sequence. | |
virtual float32_t | nextFloat32 () |
Returns the next pseudorandom, uniformly distributed float32_t value from this random number generator's sequence. | |
virtual float64_t | nextFloat64 () |
Returns the next pseudorandom, uniformly distributed float64_t value from this random number generator's sequence. | |
virtual void | seed () |
Provides a default seeding algorithm that is used to seed this random number if no seed is provided. | |
virtual void | setSeed (int64_t lSeed) |
Sets the seed of this random number generator using a single long seed. | |
Static Public Member Functions | |
static ObjectArray::Handle | randomize (ObjectArray::Handle ha) |
Randomize the order of the elements within the passed array. | |
static List::Handle | randomize (List::Handle hl) |
Randomize the order of the elements within the passed list. | |
static Handle | getInstance () |
Return the static Random instance. | |
Protected Member Functions | |
Random () | |
Create a new Random instance without supplying a seed. | |
Random (int64_t lSeed) | |
Create a new Random instance, specifying a seed to use. | |
virtual int32_t | next (int32_t nBits) |
Implementation of the random number algorithm which generates the next pseudorandom number. | |
Protected Attributes | |
NativeAtomic64 | m_atomicSeed |
The internal state associated with this pseudorandom number generator. |
Random | ( | ) | [protected] |
virtual int32_t nextInt32 | ( | int32_t | n | ) | [virtual] |
Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence.
n the upper bound (exclusive) for the returned value
IllegalArgumentException | if n is <= 0 |
virtual bool nextBoolean | ( | ) | [virtual] |
Returns the next pseudorandom, uniformly distributed boolean value from this random number generator's sequence.
virtual int32_t nextInt32 | ( | ) | [virtual] |
Returns the next pseudorandom, uniformly distributed int32_t value from this random number generator's sequence.
virtual int64_t nextInt64 | ( | ) | [virtual] |
Returns the next pseudorandom, uniformly distributed int64_t value from this random number generator's sequence.
virtual float32_t nextFloat32 | ( | ) | [virtual] |
Returns the next pseudorandom, uniformly distributed float32_t value from this random number generator's sequence.
virtual float64_t nextFloat64 | ( | ) | [virtual] |
Returns the next pseudorandom, uniformly distributed float64_t value from this random number generator's sequence.
static ObjectArray::Handle randomize | ( | ObjectArray::Handle | ha | ) | [static] |
Randomize the order of the elements within the passed array.
ha | an array of objects to randomize |
static List::Handle randomize | ( | List::Handle | hl | ) | [static] |
Randomize the order of the elements within the passed list.
ha | a list of objects to randomize |
virtual int32_t next | ( | int32_t | nBits | ) | [protected, virtual] |
Implementation of the random number algorithm which generates the next pseudorandom number.
Generates a 32 bit int value with it's corresponding bits being individually generated pseudorandom 1's and 0's. This method should be overridden to provide a new random number algorithm.
nBits | number of random bits to generate |
static Handle getInstance | ( | ) | [static] |