Class Beta

All Implemented Interfaces:
DoubleFunction, IntFunction, Serializable, Cloneable

public class Beta extends AbstractContinousDistribution
Beta distribution; math definition and animated definition.

p(x) = k * x^(alpha-1) * (1-x)^(beta-1) with k = g(alpha+beta)/(g(alpha)*g(beta)) and g(a) being the gamma function.

Valid parameter ranges: alpha > 0 and beta > 0.

Instance methods operate on a user supplied uniform random number generator; they are unsynchronized.

Static methods operate on a default uniform random number generator; they are synchronized.

Implementation:

Method: Stratified Rejection/Patchwork Rejection. High performance implementation.
This is a port of bsprc.c from the C-RAND / WIN-RAND library. C-RAND's implementation, in turn, is based upon

H. Sakasegawa (1983): Stratified rejection and squeeze method for generating beta random numbers, Ann. Inst. Statist. Math. 35 B, 291-302.

and

Stadlober E., H. Zechner (1993), Generating beta variates via patchwork rejection,, Computing 50, 1-18.

Version:
1.0, 09/24/99
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    (package private) double
     
    (package private) double
     
    (package private) double
     
    protected double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    protected double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    protected static Beta
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     
    (package private) double
     

    Fields inherited from class cern.jet.random.AbstractDistribution

    randomGenerator

    Fields inherited from class cern.colt.PersistentObject

    serialVersionUID
  • Constructor Summary

    Constructors
    Constructor
    Description
    Beta(double alpha, double beta, RandomEngine randomGenerator)
    Constructs a Beta distribution.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected double
    b00(double a, double b, RandomEngine randomGenerator)
     
    protected double
    b01(double a, double b, RandomEngine randomGenerator)
     
    protected double
    b1prs(double p, double q, RandomEngine randomGenerator)
     
    double
    cdf(double x)
    Returns the cumulative distribution function.
    private static double
    f(double x, double a, double b, double m)
     
    double
    Returns a random number from the distribution.
    double
    nextDouble(double alpha, double beta)
    Returns a beta distributed random number; bypasses the internal state.
    double
    pdf(double x)
    Returns the cumulative distribution function.
    void
    setState(double alpha, double beta)
    Sets the parameters.
    static double
    staticNextDouble(double alpha, double beta)
    Returns a random number from the distribution.
    Returns a String representation of the receiver.
    private static void
    Sets the uniform random number generated shared by all static methods.

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • alpha

      protected double alpha
    • beta

      protected double beta
    • PDF_CONST

      double PDF_CONST
    • a_last

      double a_last
    • b_last

      double b_last
    • a_

      double a_
    • b_

      double b_
    • t

      double t
    • fa

      double fa
    • fb

      double fb
    • p1

      double p1
    • p2

      double p2
    • c

      double c
    • ml

      double ml
    • mu

      double mu
    • p_last

      double p_last
    • q_last

      double q_last
    • a

      double a
    • b

      double b
    • s

      double s
    • m

      double m
    • D

      double D
    • Dl

      double Dl
    • x1

      double x1
    • x2

      double x2
    • x4

      double x4
    • x5

      double x5
    • f1

      double f1
    • f2

      double f2
    • f4

      double f4
    • f5

      double f5
    • ll

      double ll
    • lr

      double lr
    • z2

      double z2
    • z4

      double z4
    • p3

      double p3
    • p4

      double p4
    • shared

      protected static Beta shared
  • Constructor Details

    • Beta

      public Beta(double alpha, double beta, RandomEngine randomGenerator)
      Constructs a Beta distribution.
  • Method Details

    • b00

      protected double b00(double a, double b, RandomEngine randomGenerator)
    • b01

      protected double b01(double a, double b, RandomEngine randomGenerator)
    • b1prs

      protected double b1prs(double p, double q, RandomEngine randomGenerator)
    • cdf

      public double cdf(double x)
      Returns the cumulative distribution function.
    • f

      private static double f(double x, double a, double b, double m)
    • nextDouble

      public double nextDouble()
      Returns a random number from the distribution.
      Specified by:
      nextDouble in class AbstractDistribution
    • nextDouble

      public double nextDouble(double alpha, double beta)
      Returns a beta distributed random number; bypasses the internal state.
    • pdf

      public double pdf(double x)
      Returns the cumulative distribution function.
    • setState

      public void setState(double alpha, double beta)
      Sets the parameters.
    • staticNextDouble

      public static double staticNextDouble(double alpha, double beta)
      Returns a random number from the distribution.
    • toString

      public String toString()
      Returns a String representation of the receiver.
      Overrides:
      toString in class Object
    • xstaticSetRandomGenerator

      private static void xstaticSetRandomGenerator(RandomEngine randomGenerator)
      Sets the uniform random number generated shared by all static methods.
      Parameters:
      randomGenerator - the new uniform random number generator to be shared.