3 ms·
Here's Vigna's random function if anyone's curious. uint64_t vigna_r(uint64_t state[static 1]) { uint64_t z = (state[0] += 0x9e3779b97f4a7c15);
by jart 5y ago
Here's Vigna's random function if anyone's curious.
uint64_t vigna_r(uint64_t state[static 1]) {
uint64_t z = (state[0] += 0x9e3779b97f4a7c15);
z = (z ^ (z >> 30)) * 0xbf58476d1ce4e5b9;
z = (z ^ (z >> 27)) * 0x94d049bb133111eb;
return z ^ (z >> 31);
}
It passes bigcrush and practrand plus -ftree-vectorize makes it faster than xorshift.
- deleted 5y ago[deleted]