ditto Requires ucent type.
PCGs with n bits output and n bits of state.
As above but the increment is not dynamically setable.
32-bit output PCGs with 64 bits of state.
PCGs with n bits output and n bits of state.
32-bit output PCGs with 64 bits of state.
As above but the increment is not dynamically setable.
32-bit output PCGs with 64 bits of state.
64-bit output PCGs with 128 bits of state. Requires ucent type.
PCGs with n bits output and n bits of state.
As above but the increment is not dynamically setable.
PCGs with n bits output and n bits of state.
As above but the increment is not dynamically setable.
Select the above mixin templates.
RXS -- random xorshift
RXS M XS -- random xorshift, mcg multiply, fixed xorshift
XorShifts are invertible, but they are someting of a pain to invert. This function backs them out. It's used by the whacky "inside out" generator defined later.
XSH -- fixed xorshift (to high bits)
XSH RR -- high xorshift, followed by a random rotate
XSH RS -- high xorshift, followed by a random shift
XSL -- fixed xorshift (to low bits)
XSL RR -- fixed xorshift (to low bits), random rotate
XSL RR RR -- fixed xorshift (to low bits), random rotate (both parts)
Increment is 0. The LCG portion of the PCG is an MCG.
Increment of the LCG portion of the PCG is default_increment.
The increment is dynamically settable and defaults to default_increment!T.
Increment for LCG portion of the PCG is the address of the RNG
The PermutedCongruentialEngine:
Permuted Congruential Generator (PCG)
Implemented as per the C++ version of PCG, .
Paper available