#include "internal.h" static uint64 splitmix64(struct Mix *state) { uint64 result = state->s; state->s = result + 0x9E3779B97f4A7C15; result = (result ^ (result >> 30)) * 0xBF58476D1CE4E5B9; result = (result ^ (result >> 27)) * 0x94D049BB133111EB; return result ^ (result >> 31); } int rng·init(uint64 seed) { int i; Mix smstate = {seed}; for(i=0; i < 4; i++) rng·RNG.s[i] = splitmix64(&smstate); return 0; }