Package sim.util.distribution
Class Beta
java.lang.Object
sim.util.distribution.AbstractDistribution
sim.util.distribution.AbstractContinuousDistribution
sim.util.distribution.Beta
- All Implemented Interfaces:
Serializable
Beta distribution; math definition
and animated definition.
Static methods operate on a default uniform random number generator; they are synchronized.
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
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.
- See Also:
-
Field Summary
Fields inherited from class sim.util.distribution.AbstractDistribution
randomGenerator
-
Constructor Summary
ConstructorDescriptionBeta
(double alpha, double beta, MersenneTwisterFast randomGenerator) Constructs a Beta distribution. -
Method Summary
Modifier and TypeMethodDescriptionprotected 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
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.toString()
Returns a String representation of the receiver.Methods inherited from class sim.util.distribution.AbstractDistribution
apply, apply, getRandomGenerator, nextInt, setRandomGenerator
-
Field Details
-
alpha
protected double alpha -
beta
protected double beta
-
-
Constructor Details
-
Beta
Constructs a Beta distribution.
-
-
Method Details
-
b00
-
b01
-
b1prs
-
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 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. -
toString
Returns a String representation of the receiver.
-