Class LongProvider

java.lang.Object
org.apache.commons.rng.core.BaseProvider
org.apache.commons.rng.core.source64.LongProvider
All Implemented Interfaces:
RandomLongSource, RestorableUniformRandomProvider, UniformRandomProvider
Direct Known Subclasses:
AbstractL128, AbstractL64, AbstractXoRoShiRo1024, AbstractXoRoShiRo128, AbstractXoShiRo256, AbstractXoShiRo512, DotyHumphreySmallFastCounting64, JenkinsSmallFast64, MersenneTwister64, PcgRxsMXs64, SplitMix64, TwoCmres, XorShift1024Star

public abstract class LongProvider extends BaseProvider implements RandomLongSource
Base class for all implementations that provide a long-based source randomness.
  • Field Details

    • EMPTY_BOOL_SOURCE

      private static final long EMPTY_BOOL_SOURCE
      Empty boolean source. This is the location of the sign-bit after 63 right shifts on the boolean source.
      See Also:
    • EMPTY_INT_SOURCE

      private static final long EMPTY_INT_SOURCE
      Empty int source. This requires a negative value as the sign-bit is used to trigger a refill.
      See Also:
    • booleanSource

      private long booleanSource
      Provides a bit source for booleans.

      A cached value from a call to RandomLongSource.next().

      Only stores 63-bits when full as 1 bit has already been consumed. The sign bit is a flag that shifts down so the source eventually equals 1 when all bits are consumed and will trigger a refill.

    • intSource

      private long intSource
      Provides a source for ints.

      A cached half-value value from a call to RandomLongSource.next(). The int is stored in the lower 32 bits with zeros in the upper bits. When empty this is set to negative to trigger a refill.

  • Constructor Details

    • LongProvider

      public LongProvider()
      Creates a new instance.
    • LongProvider

      protected LongProvider(LongProvider source)
      Creates a new instance copying the state from the source.

      This provides base functionality to allow a generator to create a copy, for example for use in the JumpableUniformRandomProvider interface.

      Parameters:
      source - Source to copy.
      Since:
      1.3
  • Method Details