5 comments

[ 5.4 ms ] story [ 28.3 ms ] thread
> For general usage, one has to consider that its lowest bits have low linear complexity and will fail linearity tests;
> passes all tests we are aware of.

I.e. your quote relates to xoshiro256+, not Xoshiro256* *.

Where can I read a comparison of the two? Also, it seems like a bad naming scheme to use as it's easy to confuse.
I am not the author, however there is a full discussion in the paper... https://arxiv.org/abs/1805.01407

To summarise...

Xoroshiro256+ is slightly faster but fails some linearity tests in the low order bits, however when generating 64 bit floats only 53 bits are used, thus if you take the most significant 53 bits then Xoroshiro256+ is perfectly fine. It's also probably fine for generating the full 64 bits for the vast majority of cases, unless you have some very specific requirements. But for peace of mind there is the option to take the 15% slower version for a PRNG that is still sub-nanosecond (per 64 bits generated, on contemporary superscalar CPUs) and that passes all tests that the authors were aware of.