|
libhatchet
|
#include <hxrandom.hpp>
Public Member Functions | |
| constexpr | hxrandom (uint64_t stream_=1u) |
| constexpr uint32_t | operator() (void) |
| template<typename T> | |
| constexpr T | range (T base_, T size_) |
| constexpr double | range (double base_, double size_) |
| constexpr int64_t | range (int64_t base_, int64_t size_) |
| constexpr uint64_t | range (uint64_t base_, uint64_t size_) |
| void | read (void *bytes_, hxsize_t count_) |
| constexpr uint8_t | u8 (void) |
| constexpr uint16_t | u16 (void) |
| constexpr uint32_t | u32 (void) |
| constexpr uint64_t | u64 (void) |
| constexpr float | f01 (void) |
| constexpr double | d01 (void) |
hxrandom - 64-bit MMIX LCG.
Knuth, D. 2002. (Modified to perturb the return value so that all bits are of equal quality.) Uses a floating point multiply instead of integer modulo when generating numbers in a range. Requires at least 64-bit integer emulation as well. Has a period of 2^64 and passes routine numerical tests with only eight bytes of state while using simple arithmetic. Intended for test data or games, not mathematical applications.
|
inlineconstexpr |
Constructor to initialize the random number generator.
|
inlineconstexpr |
Returns a double between [0..1).
Can safely be used to generate array indices without overflowing.
|
inlineconstexpr |
Returns a float between [0..1).
Can safely be used to generate array indices without overflowing.
|
inlineconstexpr |
Returns [0..2^32).
|
inlineconstexpr |
double version.
|
inlineconstexpr |
int64_t version. Negative or zero size is undefined.
|
inlineconstexpr |
Returns a random number in the range [base..base+range).
range(0.0f,10.0f) returns 0.0f to 9.999f and not 10.0f. Uses a floating point multiply instead of a divide. base + size must not overflow the type and size must be positive.
|
inlineconstexpr |
uint64_t version. Zero size is undefined.
|
inline |
|
inlineconstexpr |
Returns [0..2^16).
|
inlineconstexpr |
Returns [0..2^32).
|
inlineconstexpr |
Returns [0..2^64).
|
inlineconstexpr |
Returns [0..2^8).