MT19937 Class Reference

Original MT19937 generator provided in the ACM paper. More...

`#include <mersenne.h>`

Inheritance diagram for MT19937:

## Additional Inherited Members

Public Member Functions inherited from MersenneTwister< 0x9908B0DF, 397, 624, 0x10DCD, 4537 >
| MersenneTwister (word32 seed=S)
| Construct a Mersenne Twister.
bool | CanIncorporateEntropy () const
| Determines if a generator can accept additional entropy.
void | IncorporateEntropy (const byte *input, size_t length)
| Update RNG state with additional unpredictable values.
void | GenerateBlock (byte *output, size_t size)
| Generate random array of bytes.
word32 | GenerateWord32 (word32 min=0, word32 max=0xffffffffL)
| Generate a random 32-bit word in the range min to max, inclusive.
void | DiscardBytes (size_t n)
| Generate and discard n bytes.
Public Member Functions inherited from RandomNumberGenerator
virtual byte | GenerateByte ()
| Generate new random byte and return it.
virtual unsigned int | GenerateBit ()
| Generate new random bit and return it.
virtual void | GenerateIntoBufferedTransformation (BufferedTransformation &target, const std::string &channel, lword length)
| Generate random bytes into a BufferedTransformation.
template<class IT >
void | Shuffle (IT begin, IT end)
| Randomly shuffle the specified array.
Public Member Functions inherited from Algorithm
| Algorithm (bool checkSelfTestStatus=true)
| Interface for all crypto algorithms.
virtual std::string | AlgorithmName () const
| Provides the name of this algorithm.
virtual std::string | AlgorithmProvider () const
| Retrieve the provider of this algorithm.
Public Member Functions inherited from Clonable
virtual Clonable * | Clone () const
| Copies this object.
Static Public Member Functions inherited from MersenneTwister< 0x9908B0DF, 397, 624, 0x10DCD, 4537 >
static const char * | StaticAlgorithmName ()

## Detailed Description

Original MT19937 generator provided in the ACM paper.

MT19937 uses 4537 as default initial seed.

You should reseed the generator after a fork() to avoid multiple generators with the same internal state.

See also
  MT19937ar, Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator

Since
  Crypto++ 5.6.3

Definition at line 210 of file mersenne.h.

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

- mersenne.h