IMSL_GAMMA_ADV

Syntax | Return Value | Arguments | Keywords | Discussion | Example | Errors | Version History

The IMSL_GAMMA_ADV function evaluates the real gamma function.

Note
This routine requires an IDL Advanced Math and Stats license. For more information, contact your ITT Visual Information Solutions sales or technical support representative.

Syntax

Result = IMSL_GAMMA_ADV(x [, /DOUBLE])

Return Value

The value of the gamma function Γ(x).

Arguments

x

Point at which the gamma function is to be evaluated.

Keywords

DOUBLE

If present and nonzero, double precision is used.

Discussion

The gamma function, Γ(x), is defined to be:

IMSL_GAMMA_ADV-16.jpg

For x < 0, the above definition is extended by analytic continuation.

The gamma function is not defined for integers less than or equal to zero. It underflows for x << 0 and overflows for large x. It also overflows for values near negative integers.

Example

In this example, Γ(1.5) is computed and printed.

x  =  1.5 
ans  =  IMSL_GAMMA_ADV(x) 
PRINT, 'Gamma(', x, ') =', ans 
Gamma( 1.50000) = 0.886227 

Errors

Alert Errors

STAT_SMALL_ARG_UNDERFLOW—The parameter x must be large enough that Γ(x) does not underflow. The underflow limit occurs first for parameters close to large negative half integers. Even though other parameters away from these half integers may yield machine-representable values of Γ(x), such parameters are considered illegal.

Warning Errors

STAT_NEARR_NEG_INT_WARN—The result is accurate to less than one-half precision because x is too close to a negative integer.

Fatal Errors

STAT_ZERO_ARG_OVERFLOW—The parameter for the gamma function is too close to zero.

STAT_NEAR_NEG_INT_FATAL—The parameter for the function is too close to a negative integer.

STAT_LARGE_ARG_OVERFLOW—The function overflows because x is too large.

STAT_CANNOT_FIND_XMIN—The algorithm used to find xmin failed. This error should never occur.

STAT_CANNOT_FIND_XMAX—The algorithm used to find xmax failed. This error should never occur.

Version History

6.4

Introduced