Class PcgMcgXshRr32

  • All Implemented Interfaces:
    RandomIntSource, org.apache.commons.rng.RestorableUniformRandomProvider, org.apache.commons.rng.UniformRandomProvider

    public class PcgMcgXshRr32
    extends IntProvider
    A Permuted Congruential Generator (PCG) that is composed of a 64-bit Multiplicative Congruential Generator (MCG) combined with the XSH-RR (xorshift; random rotate) output transformation to create 32-bit output.

    State size is 64 bits and the period is 262.

    Since:
    1.3
    See Also:
    PCG, A Family of Better Random Number Generators
    • Constructor Detail

      • PcgMcgXshRr32

        public PcgMcgXshRr32​(Long seed)
        Creates a new instance.
        Parameters:
        seed - Initial seed.
    • Method Detail

      • transform

        protected int transform​(long x)
        Transform the 64-bit state of the generator to a 32-bit output. The transformation function shall vary with respect to different generators.
        Parameters:
        x - State.
        Returns:
        the output
      • next

        public int next()
        Return the next random value.
        Returns:
        the next random value.
      • getStateInternal

        protected byte[] getStateInternal()
        Creates a snapshot of the RNG state.
        Overrides:
        getStateInternal in class IntProvider
        Returns:
        the internal state.