NAG CL Interface
s18ejc (nag_bessel_i_alpha)

Settings help

CL Name Style:

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: abs(nl) 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,,abs(nl) + 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

On entry, nl=value .
Constraint: abs(nl) 101 .
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.
The evaluation has been abandoned due to the likelihood of overflow.
On entry, a=value .
Constraint: 0.0 a < 1.0 .
On entry, x=value , nl=value .
Constraint: x0.0 when nl<0 .
The evaluation has been abandoned due to failure to satisfy the termination condition.
The evaluation has been abandoned due to total loss of precision.
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 = min(t,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 max(1,|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

Background information to multithreading can be found in the Multithreading documentation.
s18ejc is not threaded in any implementation.

9 Further Comments


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)