class
KeccakGoodRngKeccakGoodRng - A KeccakF1600 based good quality pseudo-random number generator. This class provides very good random numbers, using the KeccakF1600 algorithm without the extra security margins applied for SHA3 hash generation. This improves performance significantly without noticably trading random number quality. For cryptography grade number generation KeccakCryptoRng should be used instead.
Base classes
- class KeccakRng
Public types
- using result_type = uint64_t
- Integral type of the KeccakRng generator results.
Constructors, destructors, conversion operators
- KeccakGoodRng() explicit
- Initialize and seed the generator from a system specific nondeterministic random source.
-
template <class SeedSeq>KeccakGoodRng(SeedSeq& seed_sequence) explicit
- Initialize and seed the generator from seed_sequence.
Public functions
- void auto_seed()
- Seed the generator from a system specific nondeterministic random source.
- auto bit_capacity() const → size_t
- Amount of bits used to store hidden random number generator state.
- void discard(unsigned long long count)
- void forget()
-
template <typename RandomAccessIterator>void generate(RandomAccessIterator begin, RandomAccessIterator end)
- Fill the range [begin, end) with random unsigned integer values.
-
auto max() const → result_
type - Maximum of the result type, for uint64_t that is 18446744073709551615.
-
auto min() const → result_
type - Minimum of the result type, for uint64_t that is 0.
- auto n_nums() const → size_t
- Amount of 64 bit random numbers per generated block.
-
auto operator()() → result_
type - Generate uniformly distributed 32 bit pseudo random number.
- auto random() → uint64_t
- void seed(uint64_t seed_value = 1)
- Reinitialize the generator state using a 64 bit seed_value.
- void seed(const uint64_t* seeds, size_t n_seeds)
- Reinitialize the generator state using a nuber of 64 bit seeds.
-
template <class SeedSeq>void seed(SeedSeq& seed_sequence)
- Seed the generator state from a seed_sequence.
- void xor_seed(const uint64_t* seeds, size_t n_seeds)