public class GammaDistribution extends AbstractRealDistribution
| Modifier and Type | Field and Description |
|---|---|
static double |
DEFAULT_INVERSE_ABSOLUTE_ACCURACY
Default inverse cumulative probability accuracy.
|
random, SOLVER_DEFAULT_ABSOLUTE_ACCURACY| Constructor and Description |
|---|
GammaDistribution(double shapeIn,
double scaleIn)
Creates a new gamma distribution with specified values of the shape and
scale parameters.
|
GammaDistribution(double shapeIn,
double scaleIn,
double inverseCumAccuracy)
Creates a new gamma distribution with specified values of the shape and
scale parameters.
|
GammaDistribution(RandomGenerator rng,
double shapeIn,
double scaleIn,
double inverseCumAccuracy)
Creates a Gamma distribution.
|
| Modifier and Type | Method and Description |
|---|---|
double |
cumulativeProbability(double x)
For a random variable
X whose values are distributed according
to this distribution, this method returns P(X <= x). |
double |
density(double x)
Returns the probability density function (PDF) of this distribution
evaluated at the specified point
x. |
double |
getNumericalMean()
Use this method to get the numerical value of the mean of this
distribution.
|
double |
getNumericalVariance()
Use this method to get the numerical value of the variance of this
distribution.
|
double |
getScale()
Returns the scale parameter of
this distribution. |
double |
getShape()
Returns the shape parameter of
this distribution. |
protected double |
getSolverAbsoluteAccuracy()
Returns the solver absolute accuracy for inverse cumulative computation.
|
double |
getSupportLowerBound()
Access the lower bound of the support.
|
double |
getSupportUpperBound()
Access the upper bound of the support.
|
boolean |
isSupportConnected()
Use this method to get information about whether the support is connected,
i.e. whether all values between the lower and upper bound of the support
are included in the support.
|
boolean |
isSupportLowerBoundInclusive()
Returns true if support contains lower bound.
|
boolean |
isSupportUpperBoundInclusive()
Returns true if support contains upper bound.
|
double |
sample()
This implementation uses the following algorithms:
For 0 < shape < 1:
Ahrens, J. |
inverseCumulativeProbability, probability, probability, reseedRandomGenerator, samplepublic static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY
public GammaDistribution(double shapeIn,
double scaleIn)
shapeIn - the shape parameterscaleIn - the scale parameterNotStrictlyPositiveException - if shape <= 0 or scale <= 0.public GammaDistribution(double shapeIn,
double scaleIn,
double inverseCumAccuracy)
shapeIn - the shape parameterscaleIn - the scale parameterinverseCumAccuracy - the maximum absolute error in inverse
cumulative probability estimates (defaults to DEFAULT_INVERSE_ABSOLUTE_ACCURACY).NotStrictlyPositiveException - if shape <= 0 or scale <= 0.public GammaDistribution(RandomGenerator rng, double shapeIn, double scaleIn, double inverseCumAccuracy)
rng - Random number generator.shapeIn - the shape parameterscaleIn - the scale parameterinverseCumAccuracy - the maximum absolute error in inverse
cumulative probability estimates (defaults to DEFAULT_INVERSE_ABSOLUTE_ACCURACY).NotStrictlyPositiveException - if shape <= 0 or scale <= 0.public double getShape()
this distribution.public double getScale()
this distribution.public double density(double x)
x. In general, the PDF is
the derivative of the CDF.
If the derivative does not exist at x, then an appropriate
replacement should be returned, e.g. Double.POSITIVE_INFINITY, Double.NaN, or the limit inferior
or limit superior of the
difference quotient.x - the point at which the PDF is evaluatedxpublic double cumulativeProbability(double x)
X whose values are distributed according
to this distribution, this method returns P(X <= x). In other
words, this method represents the (cumulative) distribution function
(CDF) for this distribution.
The implementation of this method is based on:
x - the point at which the CDF is evaluatedxprotected double getSolverAbsoluteAccuracy()
getSolverAbsoluteAccuracy in class AbstractRealDistributionpublic double getNumericalMean()
alpha and scale parameter beta, the
mean is alpha * beta.Double.NaN if it is not definedpublic double getNumericalVariance()
alpha and scale parameter beta, the
variance is alpha * beta^2.Double.POSITIVE_INFINITY as
for certain cases in TDistribution) or Double.NaN if it
is not definedpublic double getSupportLowerBound()
inverseCumulativeProbability(0). In other words, this
method must return
inf {x in R | P(X <= x) > 0}.
public double getSupportUpperBound()
inverseCumulativeProbability(1). In other words, this
method must return
inf {x in R | P(X <= x) = 1}.
public boolean isSupportLowerBoundInclusive()
public boolean isSupportUpperBoundInclusive()
public boolean isSupportConnected()
truepublic double sample()
This implementation uses the following algorithms:
For 0 < shape < 1:
Ahrens, J. H. and Dieter, U., Computer methods for sampling from gamma, beta, Poisson and binomial
distributions. Computing, 12, 223-246, 1974.
For shape >= 1:
Marsaglia and Tsang, A Simple Method for Generating Gamma Variables. ACM Transactions on Mathematical
Software, Volume 26 Issue 3, September, 2000.
sample in interface RealDistributionsample in class AbstractRealDistributionCopyright © 2025 CNES. All rights reserved.