# NAG FL Interfaceg01sdf (prob_​f_​vector)

## ▸▿ Contents

Settings help

FL Name Style:

FL Specification Language:

## 1Purpose

g01sdf returns a number of lower or upper tail probabilities for the $F$ or variance-ratio distribution with real degrees of freedom.

## 2Specification

Fortran Interface
 Subroutine g01sdf ( tail, lf, f, ldf1, df1, ldf2, df2, p,
 Integer, Intent (In) :: ltail, lf, ldf1, ldf2 Integer, Intent (Inout) :: ifail Integer, Intent (Out) :: ivalid(*) Real (Kind=nag_wp), Intent (In) :: f(lf), df1(ldf1), df2(ldf2) Real (Kind=nag_wp), Intent (Out) :: p(*) Character (1), Intent (In) :: tail(ltail)
#include <nag.h>
 void g01sdf_ (const Integer *ltail, const char tail[], const Integer *lf, const double f[], const Integer *ldf1, const double df1[], const Integer *ldf2, const double df2[], double p[], Integer ivalid[], Integer *ifail, const Charlen length_tail)
The routine may be called by the names g01sdf or nagf_stat_prob_f_vector.

## 3Description

The lower tail probability for the $F$, or variance-ratio, distribution with ${u}_{i}$ and ${v}_{i}$ degrees of freedom, $P\left({F}_{i}\le {f}_{i}:{u}_{i},{v}_{i}\right)$, is defined by:
 $P( Fi ≤ fi :ui,vi) = ui ui/2 vi vi/2 Γ ((ui+vi)/2) Γ (ui/2) Γ (vi/2) ∫ 0 fi Fi (ui-2) / 2 (uiFi+vi) - (ui+vi) / 2 d Fi ,$
for ${u}_{i}$, ${v}_{i}>0$, ${f}_{i}\ge 0$.
The probability is computed by means of a transformation to a beta distribution, ${P}_{{\beta }_{i}}\left({B}_{i}\le {\beta }_{i}:{a}_{i},{b}_{i}\right)$:
 $P( Fi ≤ fi :ui,vi) = Pβi( Bi ≤ ui fi ui fi + vi : ui / 2 , vi / 2 )$
and using a call to g01eef.
For very large values of both ${u}_{i}$ and ${v}_{i}$, greater than ${10}^{5}$, a normal approximation is used. If only one of ${u}_{i}$ or ${v}_{i}$ is greater than ${10}^{5}$ then a ${\chi }^{2}$ approximation is used, see Abramowitz and Stegun (1972).
The input arrays to this routine 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.

## 4References

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

## 5Arguments

1: $\mathbf{ltail}$Integer Input
On entry: the length of the array tail.
Constraint: ${\mathbf{ltail}}>0$.
2: $\mathbf{tail}\left({\mathbf{ltail}}\right)$Character(1) array Input
On entry: indicates whether the lower or upper tail probabilities are required. For , for $\mathit{i}=1,2,\dots ,\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{ltail}},{\mathbf{lf}},{\mathbf{ldf1}},{\mathbf{ldf2}}\right)$:
${\mathbf{tail}}\left(j\right)=\text{'L'}$
The lower tail probability is returned, i.e., ${p}_{i}=P\left({F}_{i}\le {f}_{i}:{u}_{i},{v}_{i}\right)$.
${\mathbf{tail}}\left(j\right)=\text{'U'}$
The upper tail probability is returned, i.e., ${p}_{i}=P\left({F}_{i}\ge {f}_{i}:{u}_{i},{v}_{i}\right)$.
Constraint: ${\mathbf{tail}}\left(\mathit{j}\right)=\text{'L'}$ or $\text{'U'}$, for $\mathit{j}=1,2,\dots ,{\mathbf{ltail}}$.
3: $\mathbf{lf}$Integer Input
On entry: the length of the array f.
Constraint: ${\mathbf{lf}}>0$.
4: $\mathbf{f}\left({\mathbf{lf}}\right)$Real (Kind=nag_wp) array Input
On entry: ${f}_{i}$, the value of the $F$ variate with ${f}_{i}={\mathbf{f}}\left(j\right)$, .
Constraint: ${\mathbf{f}}\left(\mathit{j}\right)\ge 0.0$, for $\mathit{j}=1,2,\dots ,{\mathbf{lf}}$.
5: $\mathbf{ldf1}$Integer Input
On entry: the length of the array df1.
Constraint: ${\mathbf{ldf1}}>0$.
6: $\mathbf{df1}\left({\mathbf{ldf1}}\right)$Real (Kind=nag_wp) array Input
On entry: ${u}_{i}$, the degrees of freedom of the numerator variance with ${u}_{i}={\mathbf{df1}}\left(j\right)$, .
Constraint: ${\mathbf{df1}}\left(\mathit{j}\right)>0.0$, for $\mathit{j}=1,2,\dots ,{\mathbf{ldf1}}$.
7: $\mathbf{ldf2}$Integer Input
On entry: the length of the array df2.
Constraint: ${\mathbf{ldf2}}>0$.
8: $\mathbf{df2}\left({\mathbf{ldf2}}\right)$Real (Kind=nag_wp) array Input
On entry: ${v}_{i}$, the degrees of freedom of the denominator variance with ${v}_{i}={\mathbf{df2}}\left(j\right)$, .
Constraint: ${\mathbf{df2}}\left(\mathit{j}\right)>0.0$, for $\mathit{j}=1,2,\dots ,{\mathbf{ldf2}}$.
9: $\mathbf{p}\left(*\right)$Real (Kind=nag_wp) array Output
Note: the dimension of the array p must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{ltail}},{\mathbf{lf}},{\mathbf{ldf1}},{\mathbf{ldf2}}\right)$.
On exit: ${p}_{i}$, the probabilities for the $F$-distribution.
10: $\mathbf{ivalid}\left(*\right)$Integer array Output
Note: the dimension of the array ivalid must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{ltail}},{\mathbf{lf}},{\mathbf{ldf1}},{\mathbf{ldf2}}\right)$.
On exit: ${\mathbf{ivalid}}\left(i\right)$ indicates any errors with the input arguments, with
${\mathbf{ivalid}}\left(i\right)=0$
No error.
${\mathbf{ivalid}}\left(i\right)=1$
On entry, invalid value supplied in tail when calculating ${p}_{i}$.
${\mathbf{ivalid}}\left(i\right)=2$
On entry, ${f}_{i}<0.0$.
${\mathbf{ivalid}}\left(i\right)=3$
On entry, ${u}_{i}\le 0.0$, or, ${v}_{i}\le 0.0$.
${\mathbf{ivalid}}\left(i\right)=4$
The solution has failed to converge. The result returned should represent an approximation to the solution.
11: $\mathbf{ifail}$Integer Input/Output
On entry: ifail must be set to $0$, $-1$ or $1$ to set behaviour on detection of an error; these values have no effect when no error is detected.
A value of $0$ causes the printing of an error message and program execution will be halted; otherwise program execution continues. A value of $-1$ means that an error message is printed while a value of $1$ means that it is not.
If halting is not appropriate, the value $-1$ or $1$ is recommended. If message printing is undesirable, then the value $1$ is recommended. Otherwise, the value $-1$ is recommended since useful values can be provided in some output arguments even when ${\mathbf{ifail}}\ne {\mathbf{0}}$ on exit. When the value $-\mathbf{1}$ or $\mathbf{1}$ is used it is essential to test the value of ifail on exit.
On exit: ${\mathbf{ifail}}={\mathbf{0}}$ unless the routine detects an error or a warning has been flagged (see Section 6).

## 6Error Indicators and Warnings

If on entry ${\mathbf{ifail}}=0$ or $-1$, explanatory error messages are output on the current error message unit (as defined by x04aaf).
Errors or warnings detected by the routine:
Note: in some cases g01sdf may return useful information.
${\mathbf{ifail}}=1$
On entry, at least one value of f, df1, df2 or tail was invalid, or the solution failed to converge.
${\mathbf{ifail}}=2$
On entry, $\text{array size}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{ltail}}>0$.
${\mathbf{ifail}}=3$
On entry, $\text{array size}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{lf}}>0$.
${\mathbf{ifail}}=4$
On entry, $\text{array size}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{ldf1}}>0$.
${\mathbf{ifail}}=5$
On entry, $\text{array size}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{ldf2}}>0$.
${\mathbf{ifail}}=-99$
See Section 7 in the Introduction to the NAG Library FL Interface for further information.
${\mathbf{ifail}}=-399$
Your licence key may have expired or may not have been installed correctly.
See Section 8 in the Introduction to the NAG Library FL Interface for further information.
${\mathbf{ifail}}=-999$
Dynamic memory allocation failed.
See Section 9 in the Introduction to the NAG Library FL Interface for further information.

## 7Accuracy

The result should be accurate to five significant digits.

## 8Parallelism and Performance

g01sdf is not threaded in any implementation.

For higher accuracy g01sef can be used along with the transformations given in Section 3.

## 10Example

This example reads values from, and degrees of freedom for, a number of $F$-distributions and computes the associated lower tail probabilities.

### 10.1Program Text

Program Text (g01sdfe.f90)

### 10.2Program Data

Program Data (g01sdfe.d)

### 10.3Program Results

Program Results (g01sdfe.r)