cern.jet.random
Class Beta

java.lang.Object
  extended by cern.colt.PersistentObject
      extended by cern.jet.random.AbstractDistribution
          extended by cern.jet.random.AbstractContinousDistribution
              extended by cern.jet.random.Beta
All Implemented Interfaces:
DoubleFunction, IntFunction, java.io.Serializable, java.lang.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.

Author:
wolfgang.hoschek@cern.ch
See Also:
Serialized Form

Field Summary
protected  double alpha
           
protected  double beta
           
protected static Beta shared
           
 
Fields inherited from class cern.jet.random.AbstractDistribution
randomGenerator
 
Fields inherited from class cern.colt.PersistentObject
serialVersionUID
 
Constructor Summary
Beta(double alpha, double beta, RandomEngine randomGenerator)
          Constructs a Beta distribution.
 
Method Summary
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.
 double nextDouble()
          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.
 java.lang.String toString()
          Returns a String representation of the receiver.
 
Methods inherited from class cern.jet.random.AbstractDistribution
apply, apply, clone, getRandomGenerator, makeDefaultGenerator, nextInt, setRandomGenerator
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

alpha

protected double alpha

beta

protected double beta

shared

protected static Beta shared
Constructor Detail

Beta

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

Method Detail

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.


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 java.lang.String toString()
Returns a String representation of the receiver.

Overrides:
toString in class java.lang.Object