pcg.h 536 B

1234567891011121314151617
  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. #ifndef RANDOM_H
  4. #define RANDOM_H
  5. #include "core/typedefs.h"
  6. #define PCG_DEFAULT_INC_64 1442695040888963407ULL
  7. typedef struct { uint64_t state; uint64_t inc; } pcg32_random_t;
  8. uint32_t pcg32_random_r(pcg32_random_t* rng);
  9. void pcg32_srandom_r(pcg32_random_t* rng, uint64_t initstate, uint64_t initseq);
  10. uint32_t pcg32_boundedrand_r(pcg32_random_t* rng, uint32_t bound);
  11. #endif // RANDOM_H