s Chapter Contents
s Chapter Introduction
NAG C Library Manual

NAG Library Function Documentnag_log_beta (s14cbc)

1  Purpose

nag_log_beta (s14cbc) returns the value of the logarithm of the beta function, $\mathrm{ln}B\left(a,b\right)$, via the routine name.

2  Specification

 #include #include
 double nag_log_beta (double a, double b, NagError *fail)

3  Description

nag_log_beta (s14cbc) calculates values for $\mathrm{ln}B\left(a,b\right)$ where $B$ is the beta function given by
 $Ba,b = ∫ 0 1 ta-1 1-t b-1 dt$
or equivalently
 $Ba,b = Γa Γb Γa+b$
and $\Gamma \left(x\right)$ is the gamma function. Note that the beta function is symmetric, so that $B\left(a,b\right)=B\left(b,a\right)$.
In order to efficiently obtain accurate results several methods are used depending on the parameters $a$ and $b$.
Let ${a}_{0}=\mathrm{min}\phantom{\rule{0.125em}{0ex}}\left(a,b\right)$ and ${b}_{0}=\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(a,b\right)$. Then:
for ${a}_{0}\ge 8$,
 $ln⁡B = 0.5 ln⁡ 2π -0.5 lnb0 + Δa0 + Δ b0 - Δ a0+b0 - u - v ;$
where
• $\Delta \left({a}_{0}\right)=\mathrm{ln}\Gamma \left({a}_{0}\right)-\left({a}_{0}-0.5\right)\mathrm{ln}{a}_{0}+{a}_{0}-0.5\mathrm{ln}\left(2\pi \right)$,
• $u=-\left({a}_{0}-0.5\right)\mathrm{ln}\left[\frac{{a}_{0}}{{a}_{0}+{b}_{0}}\right]$  and
• $v={b}_{0}\mathrm{ln}\left(1+\frac{{a}_{0}}{{b}_{0}}\right)$.
for ${a}_{0}<1$,
• for ${b}_{0}\ge 8$,
 $ln⁡B = ln⁡Γ a0 + ln⁡ Γ b0 Γ a0 + b0 ;$
• for ${b}_{0}<8$,
 $ln⁡B = ln⁡Γ a0 + ln⁡Γ b0 - ln⁡Γ a0 + b0 ;$
for $2<{a}_{0}<8$,  ${a}_{0}$ is reduced to the interval $\left[1,2\right]$ by $B\left(a,b\right)=\frac{{a}_{0}-1}{{a}_{0}+{b}_{0}-1}B\left({a}_{0}-1,{b}_{0}\right)$;
for $1\le {a}_{0}\le 2$,
• for ${b}_{0}\ge 8$,
 $ln⁡B = ln⁡Γ a0 + ln⁡ Γ b0 Γ a0 + b0 ;$
• for $2<{b}_{0}<8$, ${b}_{0}$ is reduced to the interval $\left[1,2\right]$;
• for ${b}_{0}\le 2$,
 $ln⁡B = ln⁡Γ a0 + ln⁡Γ b0 - ln⁡Γ a0 + b0 .$
nag_log_beta (s14cbc) is derived from BETALN 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

5  Arguments

On entry: the parameter $a$ of the function.
Constraint: ${\mathbf{a}}>0.0$.
2:     bdoubleInput
On entry: the parameter $b$ of the function.
Constraint: ${\mathbf{b}}>0.0$.
3:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

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}}>0.0$.
On entry, ${\mathbf{b}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{b}}>0.0$.

7  Accuracy

nag_log_beta (s14cbc) should produce full relative accuracy for all input arguments.

None.

9  Example

This example reads values of the parameters $a$ and $b$ from a file, evaluates the function and prints the results.

9.1  Program Text

Program Text (s14cbce.c)

9.2  Program Data

Program Data (s14cbce.d)

9.3  Program Results

Program Results (s14cbce.r)