public class Beta extends AbstractContinousDistribution
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.
Implementation:
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.
Modifier and Type | Field and Description |
---|---|
protected double |
alpha |
protected double |
beta |
randomGenerator
Constructor and Description |
---|
Beta(double alpha,
double beta,
MersenneTwisterFast randomGenerator)
Constructs a Beta distribution.
|
Modifier and Type | Method and Description |
---|---|
protected double |
b00(double a,
double b,
MersenneTwisterFast randomGenerator) |
protected double |
b01(double a,
double b,
MersenneTwisterFast randomGenerator) |
protected double |
b1prs(double p,
double q,
MersenneTwisterFast 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.
|
java.lang.String |
toString()
Returns a String representation of the receiver.
|
apply, apply, getRandomGenerator, nextInt, setRandomGenerator
public Beta(double alpha, double beta, MersenneTwisterFast randomGenerator)
protected double b00(double a, double b, MersenneTwisterFast randomGenerator)
protected double b01(double a, double b, MersenneTwisterFast randomGenerator)
protected double b1prs(double p, double q, MersenneTwisterFast randomGenerator)
public double cdf(double x)
public double nextDouble()
nextDouble
in class AbstractDistribution
public double nextDouble(double alpha, double beta)
public double pdf(double x)
public void setState(double alpha, double beta)
public java.lang.String toString()
toString
in class java.lang.Object