g01 Chapter Contents
g01 Chapter Introduction
NAG Library Manual

# NAG Library Function Documentnag_prob_gamma_vector (g01sfc)

## 1  Purpose

nag_prob_gamma_vector (g01sfc) returns a number of lower or upper tail probabilities for the gamma distribution.

## 2  Specification

 #include #include
 void nag_prob_gamma_vector (Integer ltail, const Nag_TailProbability tail[], Integer lg, const double g[], Integer la, const double a[], Integer lb, const double b[], double p[], Integer ivalid[], NagError *fail)

## 3  Description

The lower tail probability for the gamma distribution with parameters ${\alpha }_{i}$ and ${\beta }_{i}$, $P\left({G}_{i}\le {g}_{i}\right)$, is defined by:
 $P Gi ≤ gi :αi,βi = 1 βi αi Γ αi ∫ 0 gi Gi αi-1 e -Gi/βi dGi , αi>0.0 , ​ βi>0.0 .$
The mean of the distribution is ${\alpha }_{i}{\beta }_{i}$ and its variance is ${\alpha }_{i}{{\beta }_{i}}^{2}$. The transformation ${Z}_{i}=\frac{{G}_{i}}{{\beta }_{i}}$ is applied to yield the following incomplete gamma function in normalized form,
 $P Gi ≤ gi :αi,βi = P Zi ≤ gi / βi :αi,1.0 = 1 Γ αi ∫ 0 gi / βi Zi αi-1 e -Zi dZi .$
This is then evaluated using nag_incomplete_gamma (s14bac).
The input arrays to this function are designed to allow maximum flexibility in the supply of vector arguments by re-using elements of any arrays that are shorter than the total number of evaluations required. See Section 2.6 in the g01 Chapter Introduction for further information.

## 4  References

Hastings N A J and Peacock J B (1975) Statistical Distributions Butterworth

## 5  Arguments

1:     ltailIntegerInput
On entry: the length of the array tail.
Constraint: ${\mathbf{ltail}}>0$.
2:     tail[ltail]const Nag_TailProbabilityInput
On entry: indicates whether a lower or upper tail probability is required. For , for $\mathit{i}=1,2,\dots ,\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{ltail}},{\mathbf{lg}},{\mathbf{la}},{\mathbf{lb}}\right)$:
${\mathbf{tail}}\left[j\right]=\mathrm{Nag_LowerTail}$
The lower tail probability is returned, i.e., ${p}_{i}=P\left({G}_{i}\le {g}_{i}:{\alpha }_{i},{\beta }_{i}\right)$.
${\mathbf{tail}}\left[j\right]=\mathrm{Nag_UpperTail}$
The upper tail probability is returned, i.e., ${p}_{i}=P\left({G}_{i}\ge {g}_{i}:{\alpha }_{i},{\beta }_{i}\right)$.
Constraint: ${\mathbf{tail}}\left[\mathit{j}-1\right]=\mathrm{Nag_LowerTail}$ or $\mathrm{Nag_UpperTail}$, for $\mathit{j}=1,2,\dots ,{\mathbf{ltail}}$.
3:     lgIntegerInput
On entry: the length of the array g.
Constraint: ${\mathbf{lg}}>0$.
4:     g[lg]const doubleInput
On entry: ${g}_{i}$, the value of the gamma variate with ${g}_{i}={\mathbf{g}}\left[j\right]$, .
Constraint: ${\mathbf{g}}\left[\mathit{j}-1\right]\ge 0.0$, for $\mathit{j}=1,2,\dots ,{\mathbf{lg}}$.
5:     laIntegerInput
On entry: the length of the array a.
Constraint: ${\mathbf{la}}>0$.
6:     a[la]const doubleInput
On entry: the parameter ${\alpha }_{i}$ of the gamma distribution with ${\alpha }_{i}={\mathbf{a}}\left[j\right]$, .
Constraint: ${\mathbf{a}}\left[\mathit{j}-1\right]>0.0$, for $\mathit{j}=1,2,\dots ,{\mathbf{la}}$.
7:     lbIntegerInput
On entry: the length of the array b.
Constraint: ${\mathbf{lb}}>0$.
8:     b[lb]const doubleInput
On entry: the parameter ${\beta }_{i}$ of the gamma distribution with ${\beta }_{i}={\mathbf{b}}\left[j\right]$, .
Constraint: ${\mathbf{b}}\left[\mathit{j}-1\right]>0.0$, for $\mathit{j}=1,2,\dots ,{\mathbf{lb}}$.
9:     p[$\mathit{dim}$]doubleOutput
Note: the dimension, dim, of the array p must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{lg}},{\mathbf{la}},{\mathbf{lb}},{\mathbf{ltail}}\right)$.
On exit: ${p}_{i}$, the probabilities of the beta distribution.
10:   ivalid[$\mathit{dim}$]IntegerOutput
Note: the dimension, dim, of the array ivalid must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{lg}},{\mathbf{la}},{\mathbf{lb}},{\mathbf{ltail}}\right)$.
On exit: ${\mathbf{ivalid}}\left[i-1\right]$ indicates any errors with the input arguments, with
${\mathbf{ivalid}}\left[i-1\right]=0$
No error.
${\mathbf{ivalid}}\left[i-1\right]=1$
 On entry, invalid value supplied in tail when calculating ${p}_{i}$.
${\mathbf{ivalid}}\left[i-1\right]=2$
 On entry, ${g}_{i}<0.0$.
${\mathbf{ivalid}}\left[i-1\right]=3$
 On entry, ${\alpha }_{i}\le 0.0$, or ${\beta }_{i}\le 0.0$.
${\mathbf{ivalid}}\left[i-1\right]=4$
The solution did not converge in $600$ iterations, see nag_incomplete_gamma (s14bac) for details. The probability returned should be a reasonable approximation to the solution.
11:   failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

## 6  Error Indicators and Warnings

NE_ALLOC_FAIL
Dynamic memory allocation failed.
NE_ARRAY_SIZE
On entry, $\text{array size}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{la}}>0$.
On entry, $\text{array size}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{lb}}>0$.
On entry, $\text{array size}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{lg}}>0$.
On entry, $\text{array size}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{ltail}}>0$.
On entry, argument $⟨\mathit{\text{value}}⟩$ had an illegal value.
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.
NW_IVALID
On entry, at least one value of g, a, b or tail was invalid, or the solution did not converge.

## 7  Accuracy

The result should have a relative accuracy of machine precision. There are rare occasions when the relative accuracy attained is somewhat less than machine precision but the error should not exceed more than $1$ or $2$ decimal places.

## 8  Parallelism and Performance

Not applicable.

The time taken by nag_prob_gamma_vector (g01sfc) to calculate each probability varies slightly with the input arguments ${g}_{i}$, ${\alpha }_{i}$ and ${\beta }_{i}$.

## 10  Example

This example reads in values from a number of gamma distributions and computes the associated lower tail probabilities.

### 10.1  Program Text

Program Text (g01sfce.c)

### 10.2  Program Data

Program Data (g01sfce.d)

### 10.3  Program Results

Program Results (g01sfce.r)