Class ContinuousUniformSampler

java.lang.Object
org.apache.commons.rng.sampling.distribution.SamplerBase
org.apache.commons.rng.sampling.distribution.ContinuousUniformSampler
All Implemented Interfaces:
ContinuousSampler, SharedStateContinuousSampler, SharedStateSampler<SharedStateContinuousSampler>

Sampling from a uniform distribution.

Sampling uses UniformRandomProvider.nextDouble().

Since:
1.0
  • Constructor Details

    • ContinuousUniformSampler

      public ContinuousUniformSampler(UniformRandomProvider rng, double lo, double hi)
      Create an instance.
      Parameters:
      rng - Generator of uniformly distributed random numbers.
      lo - Lower bound.
      hi - Higher bound.
  • Method Details

    • sample

      public double sample()
      Creates a double sample.
      Specified by:
      sample in interface ContinuousSampler
      Returns:
      a sample.
    • toString

      public String toString()
      Overrides:
      toString in class SamplerBase
    • withUniformRandomProvider

      Create a new instance of the sampler with the same underlying state using the given uniform random provider as the source of randomness.
      Specified by:
      withUniformRandomProvider in interface SharedStateSampler<SharedStateContinuousSampler>
      Parameters:
      rng - Generator of uniformly distributed random numbers.
      Returns:
      the sampler
      Since:
      1.3
    • of

      public static SharedStateContinuousSampler of(UniformRandomProvider rng, double lo, double hi)
      Creates a new continuous uniform distribution sampler.
      Parameters:
      rng - Generator of uniformly distributed random numbers.
      lo - Lower bound.
      hi - Higher bound.
      Returns:
      the sampler
      Since:
      1.3
    • of

      public static SharedStateContinuousSampler of(UniformRandomProvider rng, double lo, double hi, boolean excludeBounds)
      Creates a new continuous uniform distribution sampler.

      The bounds can be optionally excluded to sample from the open interval (lower, upper). In this case if the bounds have the same sign the open interval must contain at least 1 double value between the limits; if the bounds have opposite signs the open interval must contain at least 2 double values between the limits excluding -0.0. Thus the interval (-x,x) will raise an exception when x is Double.MIN_VALUE.

      Parameters:
      rng - Generator of uniformly distributed random numbers.
      lo - Lower bound.
      hi - Higher bound.
      excludeBounds - Set to true to use the open interval (lower, upper).
      Returns:
      the sampler
      Throws:
      IllegalArgumentException - If the open interval is invalid.
      Since:
      1.4