nag_prob_gamma_vector (g01sfc) (PDF version)
g01 Chapter Contents
g01 Chapter Introduction
NAG C Library Manual

NAG Library Function Document

nag_prob_gamma_vector (g01sfc)

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

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

2  Specification

#include <nag.h>
#include <nagg01.h>
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 αi and βi, PGigi, 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 αiβi and its variance is αiβi2. The transformation Zi=Giβ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: ltail>0.
2:     tail[ltail]const Nag_TailProbabilityInput
On entry: indicates whether a lower or upper tail probability is required. For j= i-1 mod ltail , for i=1,2,,maxltail,lg,la,lb:
tail[j]=Nag_LowerTail
The lower tail probability is returned, i.e., pi = P Gi gi :αi,βi .
tail[j]=Nag_UpperTail
The upper tail probability is returned, i.e., pi = P Gi gi :αi,βi .
Constraint: tail[j-1]=Nag_LowerTail or Nag_UpperTail, for j=1,2,,ltail.
3:     lgIntegerInput
On entry: the length of the array g.
Constraint: lg>0.
4:     g[lg]const doubleInput
On entry: gi, the value of the gamma variate with gi=g[j], j=i-1 mod lg.
Constraint: g[j-1]0.0, for j=1,2,,lg.
5:     laIntegerInput
On entry: the length of the array a.
Constraint: la>0.
6:     a[la]const doubleInput
On entry: the parameter αi of the gamma distribution with αi=a[j], j=i-1 mod la.
Constraint: a[j-1]>0.0, for j=1,2,,la.
7:     lbIntegerInput
On entry: the length of the array b.
Constraint: lb>0.
8:     b[lb]const doubleInput
On entry: the parameter βi of the gamma distribution with βi=b[j], j=i-1 mod lb.
Constraint: b[j-1]>0.0, for j=1,2,,lb.
9:     p[dim]doubleOutput
Note: the dimension, dim, of the array p must be at least maxlg,la,lb,ltail.
On exit: pi, the probabilities of the beta distribution.
10:   ivalid[dim]IntegerOutput
Note: the dimension, dim, of the array ivalid must be at least maxlg,la,lb,ltail.
On exit: ivalid[i-1] indicates any errors with the input arguments, with
ivalid[i-1]=0
No error.
ivalid[i-1]=1
On entry,invalid value supplied in tail when calculating pi.
ivalid[i-1]=2
On entry,gi<0.0.
ivalid[i-1]=3
On entry,αi0.0,
orβi0.0.
ivalid[i-1]=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, array size=value.
Constraint: la>0.
On entry, array size=value.
Constraint: lb>0.
On entry, array size=value.
Constraint: lg>0.
On entry, array size=value.
Constraint: ltail>0.
NE_BAD_PARAM
On entry, argument 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.
Check ivalid for more information.

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  Further Comments

The time taken by nag_prob_gamma_vector (g01sfc) to calculate each probability varies slightly with the input arguments gi, αi and βi.

9  Example

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

9.1  Program Text

Program Text (g01sfce.c)

9.2  Program Data

Program Data (g01sfce.d)

9.3  Program Results

Program Results (g01sfce.r)


nag_prob_gamma_vector (g01sfc) (PDF version)
g01 Chapter Contents
g01 Chapter Introduction
NAG C Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2012