| 7 | } splitmix64_state; |
| 8 | |
| 9 | static inline uint64_t splitmix64_next(uint64_t *state) { |
| 10 | uint64_t z = (state[0] += 0x9e3779b97f4a7c15); |
| 11 | z = (z ^ (z >> 30)) * 0xbf58476d1ce4e5b9; |
| 12 | z = (z ^ (z >> 27)) * 0x94d049bb133111eb; |
| 13 | return z ^ (z >> 31); |
| 14 | } |
| 15 | |
| 16 | static inline uint64_t splitmix64_next64(splitmix64_state *state) { |
| 17 | return splitmix64_next(&state->state); |
no outgoing calls