g01 Chapter Contents
g01 Chapter Introduction
NAG C Library Manual

# NAG Library Function Documentnag_prob_normal_vector (g01sac)

## 1  Purpose

nag_prob_normal_vector (g01sac) returns a number of one or two tail probabilities for the Normal distribution.

## 2  Specification

 #include #include
 void nag_prob_normal_vector (Integer ltail, const Nag_TailProbability tail[], Integer lx, const double x[], Integer lxmu, const double xmu[], Integer lxstd, const double xstd[], double p[], Integer ivalid[], NagError *fail)

## 3  Description

The lower tail probability for the Normal distribution, $P\left({X}_{i}\le {x}_{i}\right)$ is defined by:
 $PXi≤xi = ∫ -∞ xi ZiXidXi ,$
where
 $ZiXi = 1 2πσi2 e -Xi-μi2/2σi2 , -∞ < Xi < ∞ .$
The relationship
 $P Xi ≤ xi = 12 erfc - xi - μi 2 σi$
is used, where erfc is the complementary error function, and is computed using nag_erfc (s15adc).
When the two tail confidence probability is required the relationship
 $P Xi≤xi - P Xi ≤ - xi = erf xi - μi 2 σi ,$
is used, where erf is the error function, and is computed using nag_erf (s15aec).
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

Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications
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[${\mathbf{ltail}}$]const Nag_TailProbabilityInput
On entry: indicates which tail the returned probabilities should represent. Letting $Z$ denote a variate from a standard Normal distribution, and ${z}_{i}=\frac{{x}_{i}-{\mu }_{i}}{{\sigma }_{i}}$, then for , for $\mathit{i}=1,2,\dots ,\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{lx}},{\mathbf{ltail}},{\mathbf{lxmu}},{\mathbf{lxstd}}\right)$:
${\mathbf{tail}}\left[j\right]=\mathrm{Nag_LowerTail}$
The lower tail probability is returned, i.e., ${p}_{i}=P\left(Z\le {z}_{i}\right)$.
${\mathbf{tail}}\left[j\right]=\mathrm{Nag_UpperTail}$
The upper tail probability is returned, i.e., ${p}_{i}=P\left(Z\ge {z}_{i}\right)$.
${\mathbf{tail}}\left[j\right]=\mathrm{Nag_TwoTailConfid}$
The two tail (confidence interval) probability is returned, i.e., ${p}_{i}=P\left(Z\le \left|{z}_{i}\right|\right)-P\left(Z\le -\left|{z}_{i}\right|\right)$.
${\mathbf{tail}}\left[j\right]=\mathrm{Nag_TwoTailSignif}$
The two tail (significance level) probability is returned, i.e., ${p}_{i}=P\left(Z\ge \left|{z}_{i}\right|\right)+P\left(Z\le -\left|{z}_{i}\right|\right)$.
Constraint: ${\mathbf{tail}}\left[\mathit{j}-1\right]=\mathrm{Nag_LowerTail}$, $\mathrm{Nag_UpperTail}$, $\mathrm{Nag_TwoTailConfid}$ or $\mathrm{Nag_TwoTailSignif}$, for $\mathit{j}=1,2,\dots ,{\mathbf{ltail}}$.
3:     lxIntegerInput
On entry: the length of the array x.
Constraint: ${\mathbf{lx}}>0$.
4:     x[lx]const doubleInput
On entry: ${x}_{i}$, the Normal variate values with ${x}_{i}={\mathbf{x}}\left[j\right]$, .
5:     lxmuIntegerInput
On entry: the length of the array xmu.
Constraint: ${\mathbf{lxmu}}>0$.
6:     xmu[lxmu]const doubleInput
On entry: ${\mu }_{i}$, the means with ${\mu }_{i}={\mathbf{xmu}}\left[j\right]$, .
7:     lxstdIntegerInput
On entry: the length of the array xstd.
Constraint: ${\mathbf{lxstd}}>0$.
8:     xstd[lxstd]const doubleInput
On entry: ${\sigma }_{i}$, the standard deviations with ${\sigma }_{i}={\mathbf{xstd}}\left[j\right]$, .
Constraint: ${\mathbf{xstd}}\left[\mathit{j}-1\right]>0.0$, for $\mathit{j}=1,2,\dots ,{\mathbf{lxstd}}$.
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{lx}},{\mathbf{ltail}},{\mathbf{lxmu}},{\mathbf{lxstd}}\right)$.
On exit: ${p}_{i}$, the probabilities for the Normal 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{lx}},{\mathbf{ltail}},{\mathbf{lxmu}},{\mathbf{lxstd}}\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, ${\sigma }_{i}\le 0.0$.
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, ${\mathbf{ltail}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{ltail}}>0$.
On entry, ${\mathbf{lx}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{lx}}>0$.
On entry, ${\mathbf{lxmu}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{lxmu}}>0$.
On entry, ${\mathbf{lxstd}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{lxstd}}>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 tail or xstd was invalid.

## 7  Accuracy

Accuracy is limited by machine precision. For detailed error analysis see nag_erfc (s15adc) and nag_erf (s15aec).

None.

## 9  Example

Four values of tail, x, xmu and xstd are input and the probabilities calculated and printed.

### 9.1  Program Text

Program Text (g01sace.c)

### 9.2  Program Data

Program Data (g01sace.d)

### 9.3  Program Results

Program Results (g01sace.r)