LC_RNG Class Reference

Linear Congruential Generator (LCG). More...

`#include <rng.h>`

Inheritance diagram for LC_RNG:

## Public Member Functions

| LC_RNG (word32 init_seed)
| Construct a Linear Congruential Generator (LCG).
void | GenerateBlock (byte *output, size_t size)
| Generate random array of bytes.
word32 | GetSeed ()
Public Member Functions inherited from RandomNumberGenerator
virtual void | IncorporateEntropy (const byte *input, size_t length)
| Update RNG state with additional unpredictable values.
virtual bool | CanIncorporateEntropy () const
| Determines if a generator can accept additional entropy.
virtual byte | GenerateByte ()
| Generate new random byte and return it.
virtual unsigned int | GenerateBit ()
| Generate new random bit and return it.
virtual word32 | GenerateWord32 (word32 min=0, word32 max=0xffffffffUL)
| Generate a random 32 bit word in the range min to max, inclusive.
virtual void | GenerateIntoBufferedTransformation (BufferedTransformation &target, const std::string &channel, lword length)
| Generate random bytes into a BufferedTransformation.
virtual void | DiscardBytes (size_t n)
| Generate and discard n bytes.
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.

## Detailed Description

Linear Congruential Generator (LCG).

Originally propsed by William S. England.

Warning
  LC_RNG is suitable for simulations, where uniformaly distributed numbers are required quickly. It should not be used for cryptographic purposes.

Definition at line 22 of file rng.h.

## Constructor & Destructor Documentation

## LC_RNG()

LC_RNG::LC_RNG | ( | word32 | init_seed | ) |

inline

Construct a Linear Congruential Generator (LCG).

Parameters

  init_seed | the initial value for the generator

Definition at line 27 of file rng.h.

## Member Function Documentation

## GenerateBlock()

void LC_RNG::GenerateBlock | ( | byte * | output,
|  | size_t | size )

virtual

Generate random array of bytes.

Parameters

  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.

Note
  A derived generator must override either GenerateBlock() or GenerateIntoBufferedTransformation(). They can override both, or have one call the other.

Reimplemented from RandomNumberGenerator.

Definition at line 39 of file rng.cpp.

## GetSeed()

word32 LC_RNG::GetSeed | ( |  | ) |

inline

Definition at line 32 of file rng.h.

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

- rng.h
- rng.cpp