Class PcgRxsMXs64

All Implemented Interfaces:
RandomLongSource, RestorableUniformRandomProvider, UniformRandomProvider

public class PcgRxsMXs64 extends LongProvider
A Permuted Congruential Generator (PCG) that is composed of a 64-bit Linear Congruential Generator (LCG) combined with the RXS-M-XS (random xorshift; multiply; xorshift) output transformation to create 64-bit output.

State size is 128 bits and the period is 264.

Note: Although the seed size is 128 bits, only the first 64 are effective: in effect, two seeds that only differ by the last 64 bits may produce highly correlated sequences.

Since:
1.3
See Also:
  • Constructor Details

    • PcgRxsMXs64

      public PcgRxsMXs64(Long seed)
      Creates a new instance using a default increment.
      Parameters:
      seed - Initial state.
      Since:
      1.4
    • PcgRxsMXs64

      public PcgRxsMXs64(long[] seed)
      Creates a new instance.

      Note: Although the seed size is 128 bits, only the first 64 are effective: in effect, two seeds that only differ by the last 64 bits may produce highly correlated sequences.

      Parameters:
      seed - Initial seed. If the length is larger than 2, only the first 2 elements will be used; if smaller, the remaining elements will be automatically set.

      The 1st element is used to set the LCG state. The 2nd element is used to set the LCG increment; the most significant bit is discarded by left shift and the increment is set to odd.

  • Method Details