bessel_J1

Evaluates the real Bessel function of the first kind of order one J1(x).

Synopsis

#include <imsl.h>

float imsl_f_bessel_J1 (float x)

The type double function is imsl_d_bessel_J1.

Required Arguments

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

Return Value

The value of the Bessel function

 

If no solution can be computed, NaN is returned.

Description

Because the Bessel function J1(x) is oscillatory, its computation becomes inaccurate as |x| increases.

Example

The Bessel function J1(1.5) is evaluated.

 

#include <imsl.h>

#include <stdio.h>

 

int main()

{

float x = 1.5;

float ans;

 

ans = imsl_f_bessel_J1(x);

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

}

Output

 

J1(1.500000) = 0.557937

Alert Errors

IMSL_SMALL_ABS_ARG_UNDERFLOW

To prevent J1(x) from underflowing, either x must be zero, or |x| > 2s where s is the smallest representable positive number.

Warning Errors

IMSL_LARGE_ABS_ARG_WARN

|x| should be less than where ɛ is the machine precision to prevent the answer from being less accurate than half precision.

Fatal Errors

IMSL_LARGE_ABS_ARG_FATAL

|x| should be less than 1/ɛ where ɛ is the machine precision for the answer to have any precision.