Class StableSampler.Beta0WeronStableSampler

All Implemented Interfaces:
ContinuousSampler, SharedStateContinuousSampler, SharedStateSampler<SharedStateContinuousSampler>
Direct Known Subclasses:
StableSampler.Beta0CMSStableSampler
Enclosing class:
StableSampler

static class StableSampler.Beta0WeronStableSampler extends StableSampler.BaseStableSampler
Implement the generic stable distribution case: alpha < 2 and beta == 0.

Implements the same algorithm as the StableSampler.WeronStableSampler with the beta assumed to be 0.

This routine assumes alpha != 1; alpha=1, beta=0 is the Cauchy distribution case.

  • Field Details

    • eps

      protected final double eps
      Epsilon (1 - alpha).
    • meps1

      protected final double meps1
      Epsilon (1 - alpha).
    • inv1mEps

      protected final double inv1mEps
      1 / alpha = 1 / (1 - eps).
    • epsDiv1mEps

      protected final double epsDiv1mEps
      (1 / alpha) - 1 = eps / (1 - eps).
  • Constructor Details

    • Beta0WeronStableSampler

      Beta0WeronStableSampler(UniformRandomProvider rng, double alpha)
      Parameters:
      rng - Underlying source of randomness
      alpha - Stability parameter. Must be in the interval (0, 2].
    • Beta0WeronStableSampler

      Beta0WeronStableSampler(UniformRandomProvider rng, StableSampler.Beta0WeronStableSampler source)
      Parameters:
      rng - Underlying source of randomness
      source - Source to copy.
  • Method Details

    • sample

      public double sample()
      Description copied from class: StableSampler
      Generate a sample from a stable distribution.

      The distribution uses the 0-parameterization: S(alpha, beta, gamma, delta; 0).

      Specified by:
      sample in interface ContinuousSampler
      Specified by:
      sample in class StableSampler
      Returns:
      a sample.
    • createSample

      protected double createSample(double phi, double w)
      Create the sample. This routine is robust to edge cases and returns a deviate at the extremes of the support. It correctly handles alpha -> 0 when the sample is increasingly likely to be +/- infinity.
      Parameters:
      phi - Uniform deviate in (-pi/2, pi/2)
      w - Exponential deviate
      Returns:
      x
    • withUniformRandomProvider

      public StableSampler.Beta0WeronStableSampler withUniformRandomProvider(UniformRandomProvider rng)
      Description copied from class: StableSampler
      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>
      Specified by:
      withUniformRandomProvider in class StableSampler
      Parameters:
      rng - Generator of uniformly distributed random numbers.
      Returns:
      the sampler