public class ChiSquare extends Object
p(x) = (1/g(f/2)) * (x/2)^(f/2-1) * exp(-x/2) with g(a) being the gamma function and f being the degrees of freedom.
Valid parameter ranges: freedom > 0.
Instance methods operate on a user supplied uniform random number generator; they are unsynchronized.
Implementation:
J.F. Monahan (1987): An algorithm for generating chi random variables, ACM Trans. Math. Software 13, 168-172.
| Modifier and Type | Field and Description |
|---|---|
protected double |
freedom |
protected RandomEngine |
randomGenerator |
protected static ChiSquare |
shared |
| Constructor and Description |
|---|
ChiSquare(double freedom,
RandomEngine randomGenerator)
Constructs a ChiSquare distribution.
|
| Modifier and Type | Method and Description |
|---|---|
double |
applyAsDouble(double dummy)
Equivalent to nextDouble().
|
int |
applyAsInt(int dummy)
Equivalent to nextInt().
|
double |
cdf(double x)
Returns the cumulative distribution function.
|
Object |
clone()
Returns a deep copy of the receiver; the copy will produce identical sequences.
|
protected RandomEngine |
getRandomGenerator()
Returns the used uniform random number generator;
|
static RandomEngine |
makeDefaultGenerator()
Constructs and returns a new uniform random number generation engine seeded with the current time.
|
double |
nextDouble()
Returns a random number from the distribution.
|
double |
nextDouble(double freedom)
Returns a random number from the distribution; bypasses the internal state.
|
int |
nextInt()
Returns a random number from the distribution; returns (int) Math.round(nextDouble()).
|
double |
pdf(double x)
Returns the probability distribution function.
|
protected void |
setRandomGenerator(RandomEngine randomGenerator)
Sets the uniform random generator internally used.
|
void |
setState(double freedom)
Sets the distribution parameter.
|
static double |
staticNextDouble(double freedom)
Returns a random number from the distribution.
|
String |
toString()
Returns a String representation of the receiver.
|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitandThen, compose, identityandThen, compose, identityprotected double freedom
protected static ChiSquare shared
protected RandomEngine randomGenerator
public ChiSquare(double freedom,
RandomEngine randomGenerator)
freedom - degrees of freedom.randomGenerator - generatorIllegalArgumentException - if freedom < 1.0.public double cdf(double x)
x - xpublic double nextDouble()
public double nextDouble(double freedom)
freedom - degrees of freedom.
It should hold freedom < 1.0.public double pdf(double x)
x - xpublic void setState(double freedom)
freedom - degrees of freedom.IllegalArgumentException - if freedom < 1.0.public static double staticNextDouble(double freedom)
freedom - degrees of freedom.IllegalArgumentException - if freedom < 1.0.public String toString()
public double applyAsDouble(double dummy)
applyAsDouble in interface DoubleUnaryOperatorpublic int applyAsInt(int dummy)
applyAsInt in interface IntUnaryOperatorpublic Object clone()
protected RandomEngine getRandomGenerator()
public static RandomEngine makeDefaultGenerator()
MersenneTwister.public int nextInt()
protected void setRandomGenerator(RandomEngine randomGenerator)
randomGenerator - inputCopyright 2009-Present by OpenGamma Inc. and individual contributors
Apache v2 licensed
Additional documentation can be found at strata.opengamma.io.