diff options
Diffstat (limited to 'sys/base/rng/random.c')
-rw-r--r-- | sys/base/rng/random.c | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/sys/base/rng/random.c b/sys/base/rng/random.c deleted file mode 100644 index bd1bd6b..0000000 --- a/sys/base/rng/random.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "internal.h" - -static uint64 -xoshiro256ss(Rng *state) -{ - uint64 *s = state->s; - uint64 result = rol64(s[1] * 5, 7) * 9; - uint64 t = s[1] << 17; - - s[2] ^= s[0]; - s[3] ^= s[1]; - s[1] ^= s[2]; - s[0] ^= s[3]; - - s[2] ^= t; - s[3] = rol64(s[3], 45); - - return result; -} - -double -rng·random(void) -{ - uint64 r = xoshiro256ss(&rng·RNG); - return (double)r / (double)UINT64_MAX; -} - -uint64 -rng·randi(int max) -{ - uint64 r = xoshiro256ss(&rng·RNG); - return r % max; -} |