PRandom Class Reference
#include <random.h>
List of all members.
Detailed Description
Mersenne Twister random number generator. An application would create a static instance of this class, and then use if to generate a sequence of psuedo-random numbers.
Usually an application would simply use PRandom::Number() but if performance is an issue then it could also create a static local variable such as: { static PRandom rand; for (i = 0; i < 10000; i++) array[i] = rand; }
This method is not thread safe, so it is the applications responsibility to assure that its calls are single threaded.
Member Enumeration Documentation
anonymous enum [protected] |
- Enumerator:
RandBits |
I recommend 8 for crypto, 4 for simulations.
|
RandSize |
|
Constructor & Destructor Documentation
Construct the random number generator. This version will seed the random number generator with a value based on the system time as returned by time() and clock().
PRandom::PRandom |
( |
DWORD |
seed |
) |
|
Construct the random number generator. This version allows the application to choose the seed, thus letting it get the same sequence of values on each run. Useful for debugging.
- Parameters:
-
| seed | New seed value, must not be zero |
Member Function Documentation
unsigned PRandom::Generate |
( |
|
) |
|
Get the next psuedo-random number in sequence. This generates one pseudorandom unsigned integer (32bit) which is uniformly distributed among 0 to 2^32-1 for each call.
Referenced by operator unsigned().
static unsigned PRandom::Number |
( |
|
) |
[static] |
Get the next psuedo-random number in sequence. This utilises a single system wide thread safe PRandom variable. All threads etc will share the same psuedo-random sequence.
PRandom::operator unsigned |
( |
|
) |
[inline] |
Get the next psuedo-random number in sequence.
References Generate().
void PRandom::SetSeed |
( |
DWORD |
seed |
) |
|
Set the seed for the random number generator.
- Parameters:
-
| seed | New seed value, must not be zero |
Member Data Documentation
The documentation for this class was generated from the following file: