3 ms·
If I'm not mistaken, SplitMix64 does this, too. Its update function is a simple addition, so random access is just a matter of multiplication. All the randomnes
by professoretc 5y ago
If I'm not mistaken, SplitMix64 does this, too. Its update function is a simple addition, so random access is just a matter of multiplication. All the randomness is provided by the mixing function (which uses XORs, bitshifts, and multiplies).
- joelkp 5y agoI've looked around more, and I should probably write a better/fuller comparison of other things with what I experiment with. I think the more unusual thing, and useful observation, is that multiplying with the result of a varying bitrotation (what I thought of as "chaotic waveshaping") can be enough to make it sound like white noise (though more is needed to make all bits decently random). It makes it possible to use a multiplication less. SplitMix64 uses another multiplication and only fixed bitshifts, and is 64-bit. I've found more about the standard form of its core - a permuting hash function with two multiplications and three xor-right-shifts. There are also 32-bit functions of that type, where the best seem to be listed in this article on the topic: https://nullprogram.com/blog/2018/07/31/ https://nullprogram.com/blog/2018/07/31/