summaryrefslogtreecommitdiff
path: root/xorshift.c
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2015-02-13 16:18:10 +0100
committerLars-Dominik Braun <lars@6xq.net>2015-05-02 21:36:45 +0200
commitb9d887fc3cd3ae26c678bf35bc90c4f1d6b03888 (patch)
treeccbe25664282dd7915c55e73e25772b8801e9088 /xorshift.c
parenta46f55e0a2c9362b7b549ead851043c7b9e2791d (diff)
downloadpucket-b9d887fc3cd3ae26c678bf35bc90c4f1d6b03888.tar.gz
pucket-b9d887fc3cd3ae26c678bf35bc90c4f1d6b03888.tar.bz2
pucket-b9d887fc3cd3ae26c678bf35bc90c4f1d6b03888.zip
Unify prng use
Finally drop all isaac references, do not use system rng any more. Drop rng state from flam3_frame – it was not used anyway.
Diffstat (limited to 'xorshift.c')
-rw-r--r--xorshift.c44
1 files changed, 0 insertions, 44 deletions
diff --git a/xorshift.c b/xorshift.c
deleted file mode 100644
index 9291b90..0000000
--- a/xorshift.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* “An experimental exploration of Marsaglia’s xorshift generators,
- * scrambled”, Sebastiano Vigna */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <assert.h>
-#include <unistd.h>
-
-#include "xorshift.h"
-
-uint64_t xorshift_step (randctx * const st) {
- uint64_t s0 = st->s[ st->p ];
- uint64_t s1 = st->s[ st->p = ( st->p + 1 ) & (XORSHIFT_S-1) ];
- s1 ^= s1 << 31; // a
- s1 ^= s1 >> 11; // b
- s0 ^= s0 >> 30; // c
- return ( st->s[ st->p ] = s0 ^ s1 ) * 1181783497276652981LL;
-}
-
-static uint64_t rand64 () {
- unsigned long long rand;
- while (!__builtin_ia32_rdrand64_step (&rand));
- return rand;
-}
-
-void xorshift_seed (randctx * const st) {
- /* seed with high-quality randomness */
- for (unsigned char i = 0; i < XORSHIFT_S; i++) {
- st->s[i] = rand64 ();
- }
-}
-
-#if 0
-uint64_t xorshift_step (randctx * const st) {
- uint64_t x = st->s[0];
- x ^= x >> 12; // a
- x ^= x << 25; // b
- x ^= x >> 27; // c
- st->s[0] = x;
- return x * 2685821657736338717LL;
-}
-#endif
-