Chapter 15: Utilities > gamma

gamma

Evaluates the real gamma function.

Synopsis

#include <imsls.h>

float imsls_f_gamma (float x)

The type double procedure is imsls_d_gamma.

Required Arguments

float x   (Input)
Point at which the gamma function is to be evaluated.

Return Value

The value of the gamma function Γ(x).

Description

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

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.

Figure 15- 2   Plot of Γ(x) and 1/Γ(x)

Example

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

#include <stdio.h>

#include <imsls.h>

 

int main()

{

    float       x = 1.5;

    float       ans;

   

    ans = imsls_f_gamma(x);

    printf("Gamma(%f) = %f\n", x, ans);

}

Output

Gamma(1.500000) = 0.886227

Alert Errors

 

IMSLS_SMALL_ARG_UNDERFLOW

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

Warning Errors

 

IMSLS_NEAR_NEG_INT_WARN

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

Fatal Errors

 

IMSLS_ZERO_ARG_OVERFLOW

The argument for the gamma function is too close to zero.

IMSLS_NEAR_NEG_INT_FATAL

The argument for the function is too close to a negative integer.

IMSLS_LARGE_ARG_OVERFLOW

The function overflows because x is too large.

IMSLS_CANNOT_FIND_XMIN

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

IMSLS_CANNOT_FIND_XMAX

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


RW_logo.jpg
Contact Support