rng.bend source
rng.bend on the hub · documented module
import Base# --- Counter-based RNG v0: splitmix32. Stateless, hence parallel-perfect:# stream i is rng_next(seed + i), no shared state to thread through.# Decimals: 0x9E3779B9, 0x21F0AAAD, 0x735A2D97.def rng_step1(z: U32) -> U32: U32.add(z, 2654435769)def rng_step2(+z: U32) -> U32: U32.mul(U32.xor(z, U32.shrn(z, 16n)), 569420461)def rng_step3(+z: U32) -> U32: U32.mul(U32.xor(z, U32.shrn(z, 15n)), 1935289751)def rng_step4(+z: U32) -> U32: U32.xor(z, U32.shrn(z, 15n))def rng_next(seed: U32) -> U32: rng_step4(rng_step3(rng_step2(rng_step1(seed))))def rng01(seed: U32) -> F32: (U32.to_f32(rng_next(seed)) / 4294967296.0 : F32)