Crypto++ 8.9
Free C++ class library of cryptographic schemes
List of all members
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 ClonableClone () 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: