## org.apache.commons.math.distribution
Class WeibullDistributionImpl

    java.lang.Object
      org.apache.commons.math.distribution.AbstractDistribution
          org.apache.commons.math.distribution.AbstractContinuousDistribution
              org.apache.commons.math.distribution.WeibullDistributionImpl

All Implemented Interfaces:
  Serializable, ContinuousDistribution, Distribution, WeibullDistribution

    public class WeibullDistributionImpl

extends AbstractContinuousDistribution
implements WeibullDistribution, Serializable

Default implementation of `WeibullDistribution`.

Since:
  1.1
Version:
  $Revision: 1054524 $ $Date: 2011-01-03 05:59:18 +0100 (lun. 03 janv. 2011) $
See Also:
  Serialized Form

Field Summary
`static double` `DEFAULT_INVERSE_ABSOLUTE_ACCURACY` Default inverse cumulative probability accuracy
`private double` `numericalMean` Cached numerical mean
`private boolean` `numericalMeanIsCalculated` Whether or not the numerical mean has been calculated
`private double` `numericalVariance` Cached numerical variance
`private boolean` `numericalVarianceIsCalculated` Whether or not the numerical variance has been calculated
`private double` `scale` The scale parameter.
`private static long` `serialVersionUID` Serializable version identifier
`private double` `shape` The shape parameter.
`private double` `solverAbsoluteAccuracy` Inverse cumulative probability accuracy

Fields inherited from class org.apache.commons.math.distribution.AbstractContinuousDistribution
`randomData`

Constructor Summary
`WeibullDistributionImpl(double alpha, double beta)` Creates weibull distribution with the given shape and scale and a location equal to zero.
`WeibullDistributionImpl(double alpha, double beta, double inverseCumAccuracy)` Creates weibull distribution with the given shape, scale and inverse cumulative probability accuracy and a location equal to zero.

Method Summary
`protected double` `calculateNumericalMean()` Calculates the mean.
`private double` `calculateNumericalVariance()` Calculates the variance.
`double` `cumulativeProbability(double x)` For this distribution, X, this method returns P(X < `x`).
`double` `density(double x)` Returns the probability density for a particular point.
`protected double` `getDomainLowerBound(double p)` Access the domain value lower bound, based on `p`, used to bracket a CDF root.
`protected double` `getDomainUpperBound(double p)` Access the domain value upper bound, based on `p`, used to bracket a CDF root.
`protected double` `getInitialDomain(double p)` Access the initial domain value, based on `p`, used to bracket a CDF root.
`double` `getNumericalMean()` Returns the mean of the distribution.
`double` `getNumericalVariance()` Returns the variance of the distribution.
`double` `getScale()` Access the scale parameter.
`double` `getShape()` Access the shape parameter.
`protected double` `getSolverAbsoluteAccuracy()` Return the absolute accuracy setting of the solver used to estimate inverse cumulative probabilities.
`double` `getSupportLowerBound()` Returns the lower bound of the support for the distribution.
`double` `getSupportUpperBound()` Returns the upper bound of the support for the distribution.
`private void` `invalidateParameterDependentMoments()` Invalidates the cached mean and variance.
`double` `inverseCumulativeProbability(double p)` For this distribution, X, this method returns the critical point x, such that P(X < x) = `p`.
`void` `setScale(double beta)` Deprecated. as of 2.1 (class will become immutable in 3.0)
`private void` `setScaleInternal(double beta)` Modify the scale parameter.
`void` `setShape(double alpha)` Deprecated. as of 2.1 (class will become immutable in 3.0)
`private void` `setShapeInternal(double alpha)` Modify the shape parameter.

Methods inherited from class org.apache.commons.math.distribution.AbstractContinuousDistribution
`reseedRandomGenerator, sample, sample`

Methods inherited from class org.apache.commons.math.distribution.AbstractDistribution
`cumulativeProbability`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.commons.math.distribution.Distribution
`cumulativeProbability`

Field Detail

### DEFAULT_INVERSE_ABSOLUTE_ACCURACY

    public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY

  Default inverse cumulative probability accuracy

  Since:
    2.1
  See Also:
    Constant Field Values

### serialVersionUID

    private static final long serialVersionUID

  Serializable version identifier

  See Also:
    Constant Field Values

### shape

    private double shape

  The shape parameter.

### scale

    private double scale

  The scale parameter.

### solverAbsoluteAccuracy

    private final double solverAbsoluteAccuracy

  Inverse cumulative probability accuracy

### numericalMean

    private double numericalMean

  Cached numerical mean

### numericalMeanIsCalculated

    private boolean numericalMeanIsCalculated

  Whether or not the numerical mean has been calculated

### numericalVariance

    private double numericalVariance

  Cached numerical variance

### numericalVarianceIsCalculated

    private boolean numericalVarianceIsCalculated

  Whether or not the numerical variance has been calculated

Constructor Detail

### WeibullDistributionImpl

    public WeibullDistributionImpl(double alpha,
                                   double beta)

  Creates weibull distribution with the given shape and scale and a location equal to zero.

  Parameters:
    `alpha` - the shape parameter.
    `beta` - the scale parameter.

### WeibullDistributionImpl

    public WeibullDistributionImpl(double alpha,
                                   double beta,
                                   double inverseCumAccuracy)

  Creates weibull distribution with the given shape, scale and inverse cumulative probability accuracy and a location equal to zero.

  Parameters:
    `alpha` - the shape parameter.
    `beta` - the scale parameter.
    `inverseCumAccuracy` - the maximum absolute error in inverse cumulative probability estimates (defaults to `DEFAULT_INVERSE_ABSOLUTE_ACCURACY`)
  Since:
    2.1

Method Detail

### cumulativeProbability

    public double cumulativeProbability(double x)

  For this distribution, X, this method returns P(X < `x`).

  Specified by:
    `cumulativeProbability` in interface `Distribution`
  Parameters:
    `x` - the value at which the CDF is evaluated.
  Returns:
    CDF evaluated at `x`.

### getShape

    public double getShape()

  Access the shape parameter.

  Specified by:
    `getShape` in interface `WeibullDistribution`
  Returns:
    the shape parameter.

### getScale

    public double getScale()

  Access the scale parameter.

  Specified by:
    `getScale` in interface `WeibullDistribution`
  Returns:
    the scale parameter.

### density

    public double density(double x)

  Returns the probability density for a particular point.

  Overrides:
    `density` in class `AbstractContinuousDistribution`
  Parameters:
    `x` - The point at which the density should be computed.
  Returns:
    The pdf at point x.
  Since:
    2.1

### inverseCumulativeProbability

    public double inverseCumulativeProbability(double p)

  For this distribution, X, this method returns the critical point x, such that P(X < x) = `p`.

  Returns `Double.NEGATIVE_INFINITY` for p=0 and `Double.POSITIVE_INFINITY` for p=1.

  Specified by:
    `inverseCumulativeProbability` in interface `ContinuousDistribution`
  Overrides:
    `inverseCumulativeProbability` in class `AbstractContinuousDistribution`
  Parameters:
    `p` - the desired probability
  Returns:
    x, such that P(X < x) = `p`
  Throws:
    `IllegalArgumentException` - if `p` is not a valid probability.

### setShape

    @Deprecated
    public void setShape(double alpha)

  Deprecated. as of 2.1 (class will become immutable in 3.0)

  Modify the shape parameter.

  Specified by:
    `setShape` in interface `WeibullDistribution`
  Parameters:
    `alpha` - the new shape parameter value.

### setShapeInternal

    private void setShapeInternal(double alpha)

  Modify the shape parameter.

  Parameters:
    `alpha` - the new shape parameter value.

### setScale

    @Deprecated
    public void setScale(double beta)

  Deprecated. as of 2.1 (class will become immutable in 3.0)

  Modify the scale parameter.

  Specified by:
    `setScale` in interface `WeibullDistribution`
  Parameters:
    `beta` - the new scale parameter value.

### setScaleInternal

    private void setScaleInternal(double beta)

  Modify the scale parameter.

  Parameters:
    `beta` - the new scale parameter value.

### getDomainLowerBound

    protected double getDomainLowerBound(double p)

  Access the domain value lower bound, based on `p`, used to bracket a CDF root. This method is used by `inverseCumulativeProbability(double)` to find critical values.

  Specified by:
    `getDomainLowerBound` in class `AbstractContinuousDistribution`
  Parameters:
    `p` - the desired probability for the critical value
  Returns:
    domain value lower bound, i.e. P(X < lower bound) < `p`

### getDomainUpperBound

    protected double getDomainUpperBound(double p)

  Access the domain value upper bound, based on `p`, used to bracket a CDF root. This method is used by `inverseCumulativeProbability(double)` to find critical values.

  Specified by:
    `getDomainUpperBound` in class `AbstractContinuousDistribution`
  Parameters:
    `p` - the desired probability for the critical value
  Returns:
    domain value upper bound, i.e. P(X < upper bound) > `p`

### getInitialDomain

    protected double getInitialDomain(double p)

  Access the initial domain value, based on `p`, used to bracket a CDF root. This method is used by `inverseCumulativeProbability(double)` to find critical values.

  Specified by:
    `getInitialDomain` in class `AbstractContinuousDistribution`
  Parameters:
    `p` - the desired probability for the critical value
  Returns:
    initial domain value

### getSolverAbsoluteAccuracy

    protected double getSolverAbsoluteAccuracy()

  Return the absolute accuracy setting of the solver used to estimate inverse cumulative probabilities.

  Overrides:
    `getSolverAbsoluteAccuracy` in class `AbstractContinuousDistribution`
  Returns:
    the solver absolute accuracy
  Since:
    2.1

### getSupportLowerBound

    public double getSupportLowerBound()

  Returns the lower bound of the support for the distribution. The lower bound of the support is always 0 no matter the parameters.

  Returns:
    lower bound of the support (always 0)
  Since:
    2.2

### getSupportUpperBound

    public double getSupportUpperBound()

  Returns the upper bound of the support for the distribution. The upper bound of the support is always positive infinity no matter the parameters.

  Returns:
    upper bound of the support (always Double.POSITIVE_INFINITY)
  Since:
    2.2

### calculateNumericalMean

    protected double calculateNumericalMean()

  Calculates the mean. The mean is `scale * Gamma(1 + (1 / shape))` where `Gamma(...)` is the Gamma-function

  Returns:
    the mean
  Since:
    2.2

### calculateNumericalVariance

    private double calculateNumericalVariance()

  Calculates the variance. The variance is `scale^2 * Gamma(1 + (2 / shape)) - mean^2` where `Gamma(...)` is the Gamma-function

  Returns:
    the variance
  Since:
    2.2

### getNumericalMean

    public double getNumericalMean()

  Returns the mean of the distribution.

  Returns:
    the mean or Double.NaN if it's not defined
  Since:
    2.2

### getNumericalVariance

    public double getNumericalVariance()

  Returns the variance of the distribution.

  Returns:
    the variance (possibly Double.POSITIVE_INFINITY as for certain cases in `TDistributionImpl`) or Double.NaN if it's not defined
  Since:
    2.2

### invalidateParameterDependentMoments

    private void invalidateParameterDependentMoments()

  Invalidates the cached mean and variance.

Copyright (c) 2003-2013 Apache Software Foundation