NAG CL Interface
s18ejc (nag_bessel_i_alpha)

1 Purpose

s18ejc returns a sequence of values for the modified Bessel functions I α + n - 1 x or I α - n + 1 x for real x , non-negative α<1 and n = 1 , 2 , , N + 1 .

2 Specification

#include <nag.h>
void  s18ejc (double x, double a, Integer nl, Complex b[], NagError *fail)
The function may be called by the names: s18ejc or nag_bessel_i_alpha.

3 Description

s18ejc evaluates a sequence of values for the modified Bessel function of the first kind I α x , where x is real and nonzero and α is the order with 0 α < 1 . The N + 1 -member sequence is generated for orders α , α + 1 , , α + N when N0 . Note that + is replaced by - when N<0 . For positive orders the function may also be called with x=0 , since I q 0 = 0 when q>0 . For negative orders the formula
I -q x = I q x + 2 π sinπq K q x  
is used to generate the required sequence.

4 References

Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications

5 Arguments

1: x double Input
On entry: the argument x of the function.
Constraint: if nl<0 , x0.0 .
2: a double Input
On entry: the order α of the first member in the required sequence of function values.
Constraint: 0.0 a < 1.0 .
3: nl Integer Input
On entry: the value of N .
Constraint: absnl 101 .
4: b[×] Complex Output
On exit: with fail.code=NE_NOERROR or fail.code=NW_SOME_PRECISION_LOSS , the required sequence of function values: b n contains I α + n - 1 x if nl1 and I α - n + 1 x otherwise, for n=1,2,,absnl + 1.
5: fail NagError * Input/Output
The NAG error argument (see Section 7 in the Introduction to the NAG Library CL Interface).

6 Error Indicators and Warnings

NE_INT
On entry, nl=value .
Constraint: absnl 101 .
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.
NE_OVERFLOW_LIKELY
The evaluation has been abandoned due to the likelihood of overflow.
NE_REAL
On entry, a=value .
Constraint: 0.0 a < 1.0 .
NE_REAL_INT
On entry, x=value , nl=value .
Constraint: x0.0 when nl<0 .
NE_TERMINATION_FAILURE
The evaluation has been abandoned due to failure to satisfy the termination condition.
NE_TOTAL_PRECISION_LOSS
The evaluation has been abandoned due to total loss of precision.
NW_SOME_PRECISION_LOSS
The evaluation has been completed but some precision has been lost.

7 Accuracy

All constants in the underlying functions are specified to approximately 18 digits of precision. If t denotes the number of digits of precision in the floating-point arithmetic being used, then clearly the maximum number of correct digits in the results obtained is limited by p = mint,18 . Because of errors in argument reduction when computing elementary functions inside the underlying functions, the actual number of correct digits is limited, in general, by p-s , where s max1, log10 x , log10 α represents the number of digits lost due to the argument reduction. Thus the larger the values of x and α , the less the precision in the result.

8 Parallelism and Performance

s18ejc is not threaded in any implementation.

9 Further Comments

None.

10 Example

The example program evaluates I 0 x , I 1 x , I 2 x and I 3 x at x=0.5 , and prints the results.

10.1 Program Text

Program Text (s18ejce.c)

10.2 Program Data

Program Data (s18ejce.d)

10.3 Program Results

Program Results (s18ejce.r)