| 3243 | |
| 3244 | ANKERL_NANOBENCH_NO_SANITIZE("integer", "undefined") |
| 3245 | uint64_t splitMix64(uint64_t& state) noexcept { |
| 3246 | uint64_t z = (state += UINT64_C(0x9e3779b97f4a7c15)); |
| 3247 | z = (z ^ (z >> 30U)) * UINT64_C(0xbf58476d1ce4e5b9); |
| 3248 | z = (z ^ (z >> 27U)) * UINT64_C(0x94d049bb133111eb); |
| 3249 | return z ^ (z >> 31U); |
| 3250 | } |
| 3251 | |
| 3252 | // Seeded as described in romu paper (update april 2020) |
| 3253 | Rng::Rng(uint64_t seed) noexcept |