Class ChengBetaSampler.BaseChengBetaSampler

java.lang.Object
org.apache.commons.rng.sampling.distribution.ChengBetaSampler.BaseChengBetaSampler
All Implemented Interfaces:
ContinuousSampler, SharedStateContinuousSampler, SharedStateSampler<SharedStateContinuousSampler>
Direct Known Subclasses:
ChengBetaSampler.ChengBBBetaSampler, ChengBetaSampler.ChengBCBetaSampler
Enclosing class:
ChengBetaSampler

private abstract static class ChengBetaSampler.BaseChengBetaSampler extends Object implements SharedStateContinuousSampler
Base class to implement Cheng's algorithms for the beta distribution.
  • Field Details

    • aIsAlphaShape

      protected final boolean aIsAlphaShape
      Flag set to true if a is the beta distribution alpha shape parameter. Otherwise a is the beta distribution beta shape parameter.

      From the original Cheng paper this is equal to the result of: a == a0.

    • a

      protected final double a
      First shape parameter. The meaning of this is dependent on the aIsAlphaShape flag.
    • b

      protected final double b
      Second shape parameter. The meaning of this is dependent on the aIsAlphaShape flag.
    • rng

      protected final UniformRandomProvider rng
      Underlying source of randomness.
    • alpha

      protected final double alpha
      The algorithm alpha factor. This is not the beta distribution alpha shape parameter. It is the sum of the two shape parameters (a + b.
    • logAlpha

      protected final double logAlpha
      The logarithm of the alpha factor.
  • Constructor Details

    • BaseChengBetaSampler

      BaseChengBetaSampler(UniformRandomProvider rng, boolean aIsAlphaShape, double a, double b)
      Parameters:
      rng - Generator of uniformly distributed random numbers.
      aIsAlphaShape - true if a is the beta distribution alpha shape parameter.
      a - Distribution first shape parameter.
      b - Distribution second shape parameter.
    • BaseChengBetaSampler

      private BaseChengBetaSampler(UniformRandomProvider rng, ChengBetaSampler.BaseChengBetaSampler source)
      Parameters:
      rng - Generator of uniformly distributed random numbers.
      source - Source to copy.
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • computeX

      protected double computeX(double w)
      Compute the sample result X.
      If a == a0 deliver X = W/(b + W); otherwise deliver X = b/(b + W).

      The finalisation step is shared between the BB and BC algorithm (as step 5 of the BB algorithm and step 6 of the BC algorithm).

      Parameters:
      w - Algorithm value W.
      Returns:
      the sample value