Chapter 9: Special Functions

bessel_exp_K0

Evaluates the exponentially scaled modified Bessel function of the second kind of order zero.

Synopsis

#include <imsl.h>

float imsl_f_bessel_exp_K0 (float x)

The type double function is imsl_d_bessel_exp_K0.

Required Arguments

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

Return Value

The value of the scaled Bessel function exK0(x). If no solution can be computed, NaN is re­turned.

Description

The argument must be greater than zero for the result to be defined. The Bessel function K0(x) is defined to be

Example

The expression

is computed directly by calling imsl_f_bessel_exp_K0 and in­directly by calling imsl_f_bessel_K0. The absolute difference is printed. For large x, the in­ternal scaling provided by imsl_f_bessel_exp_K0 avoids underflow that may occur in imsl_f_bessel_K0.

#include <imsl.h>

#include <math.h>


main()

{

        float   x = 0.5;

        float   ans;

        float   error;


        ans = imsl_f_bessel_exp_K0 (x);

        printf("(e**0.5)K0(0.5) = %f\n\n", ans);


        error = fabs(ans - (exp(x)*imsl_f_bessel_K0(x)));

        printf ("Error = %e\n", error);

}

Output

(e**0.5)K0(0.5) = 1.524109


Error = 2.028498e-08


Visual Numerics, Inc.
Visual Numerics - Developers of IMSL and PV-WAVE
http://www.vni.com/
PHONE: 713.784.3131
FAX:713.781.9260