org.apache.commons.math3.distribution

## Class SaddlePointExpansion

- java.lang.Object
- - org.apache.commons.math3.distribution.SaddlePointExpansion

    final class SaddlePointExpansion
    extends java.lang.Object

Utility class used by various distributions to accurately compute their respective probability mass functions. The implementation for this class is based on the Catherine Loader's dbinom routines.

This class is not intended to be called directly.

References:

1. Catherine Loader (2000). "Fast and Accurate Computation of Binomial Probabilities.". http://www.herine.net/stat/papers/dbinom.pdf

Since:
  2.1
Version:
  $Id: SaddlePointExpansion.java 1416643 2012-12-03 19:37:14Z tn $

### Field Summary

Fields
`private static double[]` `EXACT_STIRLING_ERRORS` exact Stirling expansion error for certain values.
`private static double` `HALF_LOG_2_PI` 1/2 * log(2 π).

### Constructor Summary

Constructors
`private` `SaddlePointExpansion()` Default constructor.

### Method Summary

Methods
`(package private) static double` `getDeviancePart(double x, double mu)` A part of the deviance portion of the saddle point approximation.
`(package private) static double` `getStirlingError(double z)` Compute the error of Stirling's series at the given value.
`(package private) static double` `logBinomialProbability(int x, int n, double p, double q)` Compute the logarithm of the PMF for a binomial distribution using the saddle point expansion.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### HALF_LOG_2_PI

    private static final double HALF_LOG_2_PI

1/2 * log(2 π).

#### EXACT_STIRLING_ERRORS

    private static final double[] EXACT_STIRLING_ERRORS

exact Stirling expansion error for certain values.

### Constructor Detail

#### SaddlePointExpansion

    private SaddlePointExpansion()

Default constructor.

### Method Detail

#### getStirlingError

    static double getStirlingError(double z)

Compute the error of Stirling's series at the given value.

References:

1. Eric W. Weisstein. "Stirling's Series." From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/StirlingsSeries.html

Parameters:
  `z` - the value.
Returns:
  the Striling's series error.

#### getDeviancePart

    static double getDeviancePart(double x,
                         double mu)

A part of the deviance portion of the saddle point approximation.

References:

1. Catherine Loader (2000). "Fast and Accurate Computation of Binomial Probabilities.". http://www.herine.net/stat/papers/dbinom.pdf

Parameters:
  `x` - the x value.
  `mu` - the average.
Returns:
  a part of the deviance.

#### logBinomialProbability

    static double logBinomialProbability(int x,
                                int n,
                                double p,
                                double q)

Compute the logarithm of the PMF for a binomial distribution using the saddle point expansion.

Parameters:
  `x` - the value at which the probability is evaluated.
  `n` - the number of trials.
  `p` - the probability of success.
  `q` - the probability of failure (1 - p).
Returns:
  log(p(x)).