#include "xoshiro128plus.h"
static inline uint32_t rotl(const uint32_t x, int k) {
return (x << k) | (x >> (32 - k));
}
/* Random values found with
$ od -An -N16 -t u4 /dev/random
on a linux-5.8.10 system */
static uint32_t s[4] = {1843353603, 1301329321, 769380932, 502473458};
uint32_t next(void) {
const uint32_t result = s[0] + s[3];
const uint32_t t = s[1] << 9;
s[2] ^= s[0];
s[3] ^= s[1];
s[1] ^= s[2];
s[0] ^= s[3];
s[2] ^= t;
s[3] = rotl(s[3], 11);
return result;
}