Package cern.jet.random
Class Beta
- java.lang.Object
-
- 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.
- Version:
- 1.0, 09/24/99
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description (package private) double
a
(package private) double
a_
(package private) double
a_last
protected double
alpha
(package private) double
b
(package private) double
b_
(package private) double
b_last
protected double
beta
(package private) double
c
(package private) double
D
(package private) double
Dl
(package private) double
f1
(package private) double
f2
(package private) double
f4
(package private) double
f5
(package private) double
fa
(package private) double
fb
(package private) double
ll
(package private) double
lr
(package private) double
m
(package private) double
ml
(package private) double
mu
(package private) double
p_last
(package private) double
p1
(package private) double
p2
(package private) double
p3
(package private) double
p4
(package private) double
PDF_CONST
(package private) double
q_last
(package private) double
s
protected static Beta
shared
(package private) double
t
(package private) double
x1
(package private) double
x2
(package private) double
x4
(package private) double
x5
(package private) double
z2
(package private) double
z4
-
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
All Methods Static Methods Instance Methods Concrete Methods 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
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.private static void
xstaticSetRandomGenerator(RandomEngine randomGenerator)
Sets the uniform random number generated shared by all static methods.-
Methods inherited from class cern.jet.random.AbstractDistribution
apply, apply, clone, getRandomGenerator, makeDefaultGenerator, nextInt, setRandomGenerator
-
-
-
-
Field Detail
-
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 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.
-
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 classAbstractDistribution
-
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 classjava.lang.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.
-
-