Chapter 9: Special Functions

bessel_exp_I0

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

Synopsis

#include <imsl.h>

float imsl_f_bessel_exp_I0 (float x)

The type double function is imsl_d_bessel_exp_I0.

Required Arguments

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

Return Value

The value of the scaled Bessel function e-|x| I0(x). If no solution can be computed, NaN is returned.

Description

The Bessel function is I0(x) is defined to be

Example

The expression e-4.5I0 (4.5) is computed directly by calling imsl_f_bessel_exp_I0 and in­directly by calling imsl_f_bessel_I0. The absolute difference is printed. For large x, the in­ternal scaling provided by imsl_f_bessel_exp_I0 avoids overflow that may occur in imsl_f_bessel_I0.

#include <imsl.h>

#include <math.h>


main()

{

        float   x = 4.5;

        float   ans;

        float   error;


        ans = imsl_f_bessel_exp_I0 (x);

        printf("(e**(-4.5))I0(4.5) = %f\n\n", ans);


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

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

}

Output

(e**(-4.5))I0(4.5) = 0.194198


Error = 4.898845e-09


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