g01 Chapter Contents
g01 Chapter Introduction
NAG C Library Manual

# NAG Library Function Documentnag_deviates_gamma_dist (g01ffc)

## 1  Purpose

nag_deviates_gamma_dist (g01ffc) returns the deviate associated with the given lower tail probability of the gamma distribution.

## 2  Specification

 #include #include
 double nag_deviates_gamma_dist (double p, double a, double b, double tol, NagError *fail)

## 3  Description

The deviate, ${g}_{p}$, associated with the lower tail probability, $p$, of the gamma distribution with shape parameter $\alpha$ and scale parameter $\beta$, is defined as the solution to
 $PG≤gp:α,β=p=1βαΓα ∫0gpe-G/βGα-1dG, 0≤gp<∞;α,β>0.$
The method used is described by Best and Roberts (1975) making use of the relationship between the gamma distribution and the ${\chi }^{2}$-distribution.
Let $y=2\frac{{g}_{p}}{\beta }$. The required $y$ is found from the Taylor series expansion
 $y=y0+∑rCry0 r! Eϕy0 r,$
where ${y}_{0}$ is a starting approximation
• ${C}_{1}\left(u\right)=1$,
• ${C}_{r+1}\left(u\right)=\left(r\Psi +\frac{d}{du}\right){C}_{r}\left(u\right)$,
• $\Psi =\frac{1}{2}-\frac{\alpha -1}{u}$,
• $E=p-\underset{0}{\overset{{y}_{0}}{\int }}\varphi \left(u\right)du$,
• $\varphi \left(u\right)=\frac{1}{{2}^{\alpha }\Gamma \left(\alpha \right)}{e}^{-u/2}{u}^{\alpha -1}$.
For most values of $p$ and $\alpha$ the starting value
 $y01=2α z⁢19α +1-19α 3$
is used, where $z$ is the deviate associated with a lower tail probability of $p$ for the standard Normal distribution.
For $p$ close to zero,
 $y02= pα2αΓ α 1/α$
is used.
For large $p$ values, when ${y}_{01}>4.4\alpha +6.0$,
 $y03=-2ln1-p-α-1ln12y01+lnΓ α$
is found to be a better starting value than ${y}_{01}$.
For small $\alpha$ $\left(\alpha \le 0.16\right)$, $p$ is expressed in terms of an approximation to the exponential integral and ${y}_{04}$ is found by Newton–Raphson iterations.
Seven terms of the Taylor series are used to refine the starting approximation, repeating the process if necessary until the required accuracy is obtained.

## 4  References

Best D J and Roberts D E (1975) Algorithm AS 91. The percentage points of the ${\chi }^{2}$ distribution Appl. Statist. 24 385–388

## 5  Arguments

1:     pdoubleInput
On entry: $p$, the lower tail probability from the required gamma distribution.
Constraint: $0.0\le {\mathbf{p}}<1.0$.
On entry: $\alpha$, the shape parameter of the gamma distribution.
Constraint: $0.0<{\mathbf{a}}\le {10}^{6}$.
3:     bdoubleInput
On entry: $\beta$, the scale parameter of the gamma distribution.
Constraint: ${\mathbf{b}}>0.0$.
4:     toldoubleInput
On entry: the relative accuracy required by you in the results. The smallest recommended value is $50×\delta$, where . If nag_deviates_gamma_dist (g01ffc) is entered with tol less than $50×\delta$ or greater or equal to $1.0$, then $50×\delta$ is used instead.
5:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

## 6  Error Indicators and Warnings

On any of the error conditions listed below, except NE_ALG_NOT_CONV, nag_deviates_gamma_dist (g01ffc) returns $0.0$.
NE_ALG_NOT_CONV
The algorithm has failed to converge in 100 iterations. A larger value of tol should be tried. The result may be a reasonable approximation.
NE_GAM_NOT_CONV
The series used to calculate the gamma function has failed to converge. This is an unlikely error exit.
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.
NE_PROBAB_CLOSE_TO_TAIL
The probability is too close to $0.0$ for the given a to enable the result to be calculated.
NE_REAL_ARG_GE
On entry, ${\mathbf{p}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{p}}<1.0$.
NE_REAL_ARG_GT
On entry, ${\mathbf{a}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{a}}\le {10}^{6}$.
NE_REAL_ARG_LE
On entry, ${\mathbf{a}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{a}}>0.0$.
On entry, ${\mathbf{b}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{b}}>0.0$.
NE_REAL_ARG_LT
On entry, ${\mathbf{p}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{p}}\ge 0.0$.

## 7  Accuracy

In most cases the relative accuracy of the results should be as specified by tol. However, for very small values of $\alpha$ or very small values of $p$ there may be some loss of accuracy.

None.

## 9  Example

This example reads lower tail probabilities for several gamma distributions, and calculates and prints the corresponding deviates until the end of data is reached.

### 9.1  Program Text

Program Text (g01ffce.c)

### 9.2  Program Data

Program Data (g01ffce.d)

### 9.3  Program Results

Program Results (g01ffce.r)