Files
muuhd/resources/js_recipes/recipe - xorshift32.js
Kim Ravn Hansen 9de5140e47 refactors
2025-10-21 23:55:52 +02:00

15 lines
407 B
JavaScript
Executable File

const [XSgetSeed, XSgetNext, XSrand] = (() => {
const m = 2 ** 32;
const XSgetSeed = () => Math.floor(Math.random() * (m - 1)) + 1;
const s = Uint32Array.of(XSgetSeed());
return [XSgetSeed, XSgetNext, (seed) => XSgetNext(seed) / m];
}
function XSgetNext(seed) {
if (seed !== undefined) s[0] = seed;
s[0] ^= s[0] << 13;
s[0] ^= s[0] >>> 17;
s[0] ^= s[0] << 5;
return s[0];
}