Hi, wyrand has been updated to w1rand. faster, smaller: static inline uint64_t w1rand(uint64_t *s) { const uint64_t c = 0xd07ebc63274654c7ull; *s += c; __uint128_t t = (__uint128_t)*s * (*s ^ c); return (t >> 64) ^ t; }
Hi,
wyrand has been updated to w1rand. faster, smaller:
static inline uint64_t w1rand(uint64_t *s) {
const uint64_t c = 0xd07ebc63274654c7ull;
*s += c;
__uint128_t t = (__uint128_t)*s * (*s ^ c);
return (t >> 64) ^ t;
}