pub fn next(self: *Xoshiro256) u64 self: *Xoshiro25624
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39pub fn next(self: *Xoshiro256) u64 {
const r = math.rotl(u64, self.s[0] +% self.s[3], 23) +% self.s[0];
const t = self.s[1] << 17;
self.s[2] ^= self.s[0];
self.s[3] ^= self.s[1];
self.s[1] ^= self.s[2];
self.s[0] ^= self.s[3];
self.s[2] ^= t;
self.s[3] = math.rotl(u64, self.s[3], 45);
return r;
}