fn next(self: *RomuTrio) u64 self: *RomuTrio24
25
26
27
28
29
30
31
32
33
34fn next(self: *RomuTrio) u64 {
const xp = self.x_state;
const yp = self.y_state;
const zp = self.z_state;
self.x_state = 15241094284759029579 *% zp;
self.y_state = yp -% xp;
self.y_state = std.math.rotl(u64, self.y_state, 12);
self.z_state = zp -% yp;
self.z_state = std.math.rotl(u64, self.z_state, 44);
return xp;
}