NAG FL Interface
s14cbf (beta_​log_​real)

Settings help

FL Name Style:


FL Specification Language:


1 Purpose

s14cbf returns the value of the logarithm of the beta function, lnB(a,b), via the routine name.

2 Specification

Fortran Interface
Function s14cbf ( a, b, ifail)
Real (Kind=nag_wp) :: s14cbf
Integer, Intent (Inout) :: ifail
Real (Kind=nag_wp), Intent (In) :: a, b
C Header Interface
#include <nag.h>
double  s14cbf_ (const double *a, const double *b, Integer *ifail)
The routine may be called by the names s14cbf or nagf_specfun_beta_log_real.

3 Description

s14cbf calculates values for lnB(a,b) where B is the beta function given by
B(a,b) = 0 1 ta-1 (1-t) b-1 dt  
or equivalently
B(a,b) = Γ(a) Γ(b) Γ(a+b)  
and Γ(x) is the gamma function. Note that the beta function is symmetric, so that B(a,b)=B(b,a).
In order to efficiently obtain accurate results several methods are used depending on the parameters a and b.
Let a0=min(a,b) and b0=max(a,b). Then:
for a08,
lnB = 0.5 ln (2π) -0.5 ln(b0) + Δ(a0) + Δ (b0) - Δ (a0+b0) - u - v ;  
where for a0<1, for 2<a0<8, a0 is reduced to the interval [1,2] by B(a,b)=a0-1a0+b0-1 B(a0-1,b0);
for 1a02,
s14cbf 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

1: a Real (Kind=nag_wp) Input
On entry: the argument a of the function.
Constraint: a>0.0.
2: b Real (Kind=nag_wp) Input
On entry: the argument b of the function.
Constraint: b>0.0.
3: 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 0 is recommended. When the value -1 or 1 is used it is essential to test the value of ifail on exit.
On exit: ifail=0 unless the routine detects an error or a warning has been flagged (see Section 6).

6 Error Indicators and Warnings

If on entry 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:
ifail=1
On entry, a=value.
Constraint: a>0.0.
On entry, b=value.
Constraint: b>0.0.
ifail=-99
An unexpected error has been triggered by this routine. Please contact NAG.
See Section 7 in the Introduction to the NAG Library FL Interface for further information.
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.
ifail=-999
Dynamic memory allocation failed.
See Section 9 in the Introduction to the NAG Library FL Interface for further information.

7 Accuracy

s14cbf should produce full relative accuracy for all input arguments.

8 Parallelism and Performance

Background information to multithreading can be found in the Multithreading documentation.
s14cbf is not threaded in any implementation.

9 Further Comments

None.

10 Example

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

10.1 Program Text

Program Text (s14cbfe.f90)

10.2 Program Data

Program Data (s14cbfe.d)

10.3 Program Results

Program Results (s14cbfe.r)