Class AbstractL128

    • Field Detail

      • lah

        protected long lah
        High half of the 128-bit per-instance LCG additive parameter. Cannot be final to support RestorableUniformRandomProvider.
      • lal

        protected long lal
        Low half of the 128-bit per-instance LCG additive parameter (must be odd). Cannot be final to support RestorableUniformRandomProvider.
      • lsh

        protected long lsh
        High half of the 128-bit state of the LCG generator.
      • lsl

        protected long lsl
        Low half of the 128-bit state of the LCG generator.
    • Constructor Detail

      • AbstractL128

        AbstractL128​(long[] seed)
        Creates a new instance.
        Parameters:
        seed - Initial seed. If the length is larger than 4, only the first 4 elements will be used; if smaller, the remaining elements will be automatically set.

        The 1st and 2nd elements are used to set the LCG increment; the least significant bit is set to odd to ensure a full period LCG. The 3rd and 4th elements are used to set the LCG state.

      • AbstractL128

        AbstractL128​(long seed0,
                     long seed1,
                     long seed2,
                     long seed3)
        Creates a new instance using a 4 element seed.

        The 1st and 2nd elements are used to set the LCG increment; the least significant bit is set to odd to ensure a full period LCG. The 3rd and 4th elements are used to set the LCG state.

        Parameters:
        seed0 - Initial seed element 0.
        seed1 - Initial seed element 1.
        seed2 - Initial seed element 2.
        seed3 - Initial seed element 3.
      • AbstractL128

        AbstractL128​(AbstractL128 source)
        Creates a copy instance.
        Parameters:
        source - Source to copy.
    • Method Detail

      • setState

        private void setState​(long[] state)
        Copies the state into the generator state.
        Parameters:
        state - the new state
      • getStateInternal

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

        public UniformRandomProvider jump()
        Creates a copy of the UniformRandomProvider and then retreats the state of the current instance. The copy is returned.

        The jump is performed by advancing the state of the LCG sub-generator by 1 cycle. The XBG state is unchanged.

        Specified by:
        jump in interface JumpableUniformRandomProvider
        Returns:
        A copy of the current state.
      • longJump

        public JumpableUniformRandomProvider longJump()
        Creates a copy of the UniformRandomProvider and then retreats the state of the current instance. The copy is returned.

        The jump is performed by advancing the state of the LCG sub-generator by 264 cycles. The XBG state is unchanged.

        Specified by:
        longJump in interface LongJumpableUniformRandomProvider
        Returns:
        A copy of the current state.
      • copy

        abstract AbstractL128 copy()
        Create a copy.
        Returns:
        the copy