New version of the paper, ++-scrambled generators

Skip to first unread message

Sebastiano Vigna

Aug 1, 2019, 7:40:14 AM8/1/19
to prng
A new version of the paper on scrambled linear generators has been uploaded and soon will be on arXiv:

Correspondingly, new generators have been added to

Also, the timing have been updated using a more modern CPU.




Aug 8, 2019, 10:08:59 AM8/8/19
to prng
Thanks for the update! I noticed the following changes to the C reference implementation:

* The new generators using the ++ scrambler were added.
* All generators now provide `long_jump` in addition to `jump`, except for the xoroshiro64 generators.
* The scrambling of xoshiro128** was fixed.

For anyone curious about the practical difference between the ** scrambler and the ++ scrambler, here is the relevant section of the paper:

> In theory, xoshiro256++ uses simpler operations; however, it also accesses two words of state. Moreover, even if the ** scrambler in xoshiro256** is specified using multiplications, it can be implemented using only a few shifts, xors and sums. Another difference is that xoshiro256** is 4-dimensionally equidistributed (see Section 8), whereas xoshiro256++ is just 3-dimensionally equidistributed, albeit this difference will not have any effect in practice. On the other hand, as we will see in Section 10, the bits of xoshiro256++ has higher linear complexity

It seems there is a typo in xoshiro128plusplus.c:

    const uint64_t result = rotl(s[0] + s[3], 7) + s[0];

uint64_t is presumably meant to be uint32_t. However, I don't think that makes a difference for the generated code.


Nov 2, 2019, 4:31:49 AM11/2/19
to prng
Does xoshiro256++ have a discord? 
Reply all
Reply to author
0 new messages