summaryrefslogtreecommitdiff
path: root/core/math/pcg.h
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2017-01-16 20:06:54 +0100
committerGitHub <noreply@github.com>2017-01-16 20:06:54 +0100
commitbf05dab74f5c0fc19663dce05b462be2aba581a5 (patch)
tree837c11d04a76437e69d43744487cedf1bb5ec1f0 /core/math/pcg.h
parent0a9aee6b1d20f29e0e7a3bc8990f807144b62f74 (diff)
parent4c9004671af455a03acb4e2750b12d62b2b3c917 (diff)
Merge pull request #7532 from tagcup/pcg_prng
Replace the existing PRNG (Xorshift31) with (minimal) PCG-32.
Diffstat (limited to 'core/math/pcg.h')
-rw-r--r--core/math/pcg.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/core/math/pcg.h b/core/math/pcg.h
new file mode 100644
index 0000000000..81f4c9770e
--- /dev/null
+++ b/core/math/pcg.h
@@ -0,0 +1,14 @@
+// *Really* minimal PCG32 code / (c) 2014 M.E. O'Neill / pcg-random.org
+// Licensed under Apache License 2.0 (NO WARRANTY, etc. see website)
+
+#ifndef RANDOM_H
+#define RANDOM_H
+
+#include "typedefs.h"
+
+#define PCG_DEFAULT_INC_64 1442695040888963407ULL
+
+typedef struct { uint64_t state; uint64_t inc; } pcg32_random_t;
+uint32_t pcg32_random_r(pcg32_random_t* rng);
+
+#endif // RANDOM_H