Class AbstractXoRoShiRo64

    • Field Detail

      • SEED_SIZE

        private static final int SEED_SIZE
        Size of the state vector.
        See Also:
        Constant Field Values
      • state0

        protected int state0
        State 0 of the generator.
      • state1

        protected int state1
        State 1 of the generator.
    • Constructor Detail

      • AbstractXoRoShiRo64

        AbstractXoRoShiRo64​(int[] seed)
        Creates a new instance.
        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. A seed containing all zeros will create a non-functional generator.
      • AbstractXoRoShiRo64

        AbstractXoRoShiRo64​(int seed0,
                            int seed1)
        Creates a new instance using a 2 element seed. A seed containing all zeros will create a non-functional generator.
        Parameters:
        seed0 - Initial seed element 0.
        seed1 - Initial seed element 1.
    • Method Detail

      • setState

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

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

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

        protected abstract int nextOutput()
        Use the current state to compute the next output from the generator. The output function shall vary with respect to different generators. This method is called from next() before the current state is updated.
        Returns:
        the next output