NAG FL Interface
s14ahf (gamma_​log_​scaled_​real)

Settings help

FL Name Style:


FL Specification Language:


1 Purpose

s14ahf returns the value of lnG(x), the scaled logarithm of the gamma function Γ(x), via the function name.

2 Specification

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

3 Description

s14ahf calculates an approximate value for lnG(x), where G(x)=Γ(x+1)/(xe)x. This is a variant of the lnΓ(x) function (see also s14abf), which avoids rounding problems for very large arguments by computing lnΓ(x) with the Stirling approximation factored out.
For 0<x<15, lnG(x)=lnΓ(x+1)-xlnx+x;
and for 15x, lnG(x)=12 lnx+ln(2π)+1xR(1/x2), where R is a suitable Remez approximation.
For x0.0, the value lnG(x) is undefined; s14ahf returns zero and exits with ifail=1.

4 References

NIST Digital Library of Mathematical Functions

5 Arguments

1: x Real (Kind=nag_wp) Input
On entry: the argument x of the function.
Constraint: x>0.0.
2: 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, x0.0. On soft failure, the function value returned is zero.
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

s14ahf has been designed to produce full relative accuracy for all input arguments. Empirical results obtained by comparing with multiprecision software confirm this.

8 Parallelism and Performance

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

9 Further Comments

None.

10 Example

This example reads values of the argument x from a file, evaluates the function at each value of x and prints the results.

10.1 Program Text

Program Text (s14ahfe.f90)

10.2 Program Data

Program Data (s14ahfe.d)

10.3 Program Results

Program Results (s14ahfe.r)
GnuplotProduced by GNUPLOT 5.4 patchlevel 6 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 1 2 3 4 5 6 7 8 lnG(x) x "s14ahfe.r" Example Program Returns the Value of lnG(x), the Scaled Logarithm of the Gamma Function Γ(x)