I need a seeded random uniform distribution generator (in range [0, 1]) that can be coded using SIMD built with -march=nocona
.
Xorshift https://en.wikipedia.org/wiki/Xorshift or Hash https://github.com/skeeto/hash-prospector seems good choices for this task.
The problem seems to map uint32/64 values into floats, which are not well suited to translate in single (float) precision (due to conversion and limited space between tiny floats).
Which mapping would you suggest? It must be 32x4 vectorized, uniform spaced in range 0-1, seeded and quite light on CPU (audio application processing at audio rate; I'll use it to make white noise audio signal).