Fabcoin Core
0.16.2
P2P Digital Currency
|
Linear Congruential Generator (LCG) More...
#include <rng.h>
Public Member Functions | |
LC_RNG (word32 init_seed) | |
Construct a Linear Congruential Generator (LCG) More... | |
void | GenerateBlock (byte *output, size_t size) |
Generate random array of bytes. More... | |
word32 | GetSeed () |
Public Member Functions inherited from RandomNumberGenerator | |
virtual | ~RandomNumberGenerator () |
virtual void | IncorporateEntropy (const byte *input, size_t length) |
Update RNG state with additional unpredictable values. More... | |
virtual bool | CanIncorporateEntropy () const |
Determines if a generator can accept additional entropy. More... | |
virtual byte | GenerateByte () |
Generate new random byte and return it. More... | |
virtual unsigned int | GenerateBit () |
Generate new random bit and return it. More... | |
virtual word32 | GenerateWord32 (word32 min=0, word32 max=0xffffffffUL) |
Generate a random 32 bit word in the range min to max, inclusive. More... | |
virtual void | GenerateIntoBufferedTransformation (BufferedTransformation &target, const std::string &channel, lword length) |
Generate random bytes into a BufferedTransformation. More... | |
virtual void | DiscardBytes (size_t n) |
Generate and discard n bytes. More... | |
template<class IT > | |
void | Shuffle (IT begin, IT end) |
Randomly shuffle the specified array. More... | |
Public Member Functions inherited from Algorithm | |
virtual | ~Algorithm () |
Algorithm (bool checkSelfTestStatus=true) | |
Interface for all crypto algorithms. More... | |
virtual std::string | AlgorithmName () const |
Provides the name of this algorithm. More... | |
Public Member Functions inherited from Clonable | |
virtual | ~Clonable () |
virtual Clonable * | Clone () const |
Copies this object. More... | |
Private Attributes | |
word32 | seed |
Static Private Attributes | |
static const word32 | m =2147483647L |
static const word32 | q =44488L |
static const word16 | a =(unsigned int)48271L |
static const word16 | r =3399 |
Linear Congruential Generator (LCG)
Originally propsed by William S. England.
|
inline |
|
virtual |
Generate random array of bytes.
output | the byte buffer |
size | the length of the buffer, in bytes |
All generated values are uniformly distributed over the range specified within the the constraints of a particular generator.
Reimplemented from RandomNumberGenerator.