s Chapter Contents
s Chapter Introduction
NAG C Library Manual

# NAG Library Function Documentnag_incomplete_beta (s14ccc)

## 1  Purpose

nag_incomplete_beta (s14ccc) computes values for the incomplete beta function ${I}_{x}\left(a,b\right)$ and its complement $1-{I}_{x}\left(a,b\right)$.

## 2  Specification

 #include #include
 void nag_incomplete_beta (double a, double b, double x, double *w, double *w1, NagError *fail)

## 3  Description

nag_incomplete_beta (s14ccc) evaluates the incomplete beta function and its complement in the normalized form
 $Ixa,b = 1 Ba,b ∫ 0 x ta-1 1-t b-1 dt 1–Ix a,b = Iy b,a , where ​ y=1-x ,$
with
• $0\le x\le 1$,
• $a\ge 0$ and $b\ge 0$,
• and the beta function $B\left(a,b\right)$ is defined as $B\left(a,b\right)=\underset{0}{\overset{1}{\int }}{t}^{a-1}{\left(1-t\right)}^{b-1}dt=\frac{\Gamma \left(a\right)\Gamma \left(b\right)}{\Gamma \left(a+b\right)}$.
Several methods are used to evaluate the functions depending on the parameters $a$, $b$ and $x$. The methods include Wise's asymptotic expansion (see Wise (1950)) when $a>b$, continued fraction derived by DiDonato and Morris (1992) when $a$, $b>1$, and power series when $b\le 1$ or $b×x\le 0.7$. When both $a$ and $b$ are large, specifically $a$, $b\ge 15$, the DiDonato and Morris (1992) asymptotic expansion is employed for greater efficiency.
Once either ${I}_{x}\left(a,b\right)$ or ${I}_{y}\left(b,a\right)$ is computed, the other is obtained by subtraction from $1$. In order to avoid loss of relative precision in this subtraction, the smaller of ${I}_{x}\left(a,b\right)$ and ${I}_{y}\left(b,a\right)$ is computed first.
nag_incomplete_beta (s14ccc) is derived from BRATIO in DiDonato and Morris (1992).

## 4  References

DiDonato A R and Morris A H (1992) Algorithm 708: Significant digit computation of the incomplete beta function ratios ACM Trans. Math. Software 18 360–373
Wise M E (1950) The incomplete beta function as a contour integral and a quickly converging series for its inverse Biometrika 37 208–218

## 5  Arguments

On entry: the parameter $a$ of the function.
Constraint: ${\mathbf{a}}\ge 0.0$.
2:     bdoubleInput
On entry: the parameter $b$ of the function.
Constraints:
• ${\mathbf{b}}\ge 0.0$;
• either ${\mathbf{b}}\ne 0.0$ or ${\mathbf{a}}\ne 0.0$.
3:     xdoubleInput
On entry: $x$, upper limit of integration.
Constraints:
• $0.0\le {\mathbf{x}}\le 1.0$;
• either ${\mathbf{x}}\ne 0.0$ or ${\mathbf{a}}\ne 0.0$;
• either $1-{\mathbf{x}}\ne 0.0$ or ${\mathbf{b}}\ne 0.0$.
4:     wdouble *Output
On exit: the value of the incomplete beta function ${I}_{x}\left(a,b\right)$ evaluated from zero to $x$.
5:     w1double *Output
On exit: the value of the complement of the incomplete beta function $1-{I}_{x}\left(a,b\right)$, i.e., the incomplete beta function evaluated from $x$ to one.
6:     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.
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.
NE_REAL
On entry, ${\mathbf{a}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{a}}\ge 0.0$.
On entry, ${\mathbf{b}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{b}}\ge 0.0$.
On entry, ${\mathbf{x}}=〈\mathit{\text{value}}〉$.
Constraint: $0.0\le {\mathbf{x}}\le 1.0$.
NE_REAL_2
On entry, $1.0-{\mathbf{x}}$ and b were zero.
Constraint: $1.0-{\mathbf{x}}$ or b must be nonzero.
On entry, a and b were zero.
Constraint: a or b must be nonzero.
On entry, x and a were zero.
Constraint: x or a must be nonzero.

## 7  Accuracy

nag_incomplete_beta (s14ccc) is designed to maintain relative accuracy for all arguments. For very tiny results (of the order of machine precision or less) some relative accuracy may be lost – loss of three or four decimal places has been observed in experiments. For other arguments full relative accuracy may be expected.

None.

## 9  Example

This example reads values of the arguments $a$ and $b$ from a file, evaluates the function and its complement for $10$ different values of $x$ and prints the results.

### 9.1  Program Text

Program Text (s14ccce.c)

### 9.2  Program Data

Program Data (s14ccce.d)

### 9.3  Program Results

Program Results (s14ccce.r)