| 1 | // *Really* minimal PCG32 code / (c) 2014 M.E. O'Neill / pcg-random.org |
|---|---|
| 2 | // Licensed under Apache License 2.0 (NO WARRANTY, etc. see website) |
| 3 | |
| 4 | #ifndef RANDOM_H |
| 5 | #define RANDOM_H |
| 6 | |
| 7 | #include "core/typedefs.h" |
| 8 | |
| 9 | #define PCG_DEFAULT_INC_64 1442695040888963407ULL |
| 10 | |
| 11 | typedef struct { uint64_t state; uint64_t inc; } pcg32_random_t; |
| 12 | uint32_t pcg32_random_r(pcg32_random_t* rng); |
| 13 | void pcg32_srandom_r(pcg32_random_t* rng, uint64_t initstate, uint64_t initseq); |
| 14 | uint32_t pcg32_boundedrand_r(pcg32_random_t* rng, uint32_t bound); |
| 15 | |
| 16 | #endif // RANDOM_H |
| 17 |