NAG Library Function Document
nag_kelvin_kei (s19adc)
1 Purpose
nag_kelvin_kei (s19adc) returns a value for the Kelvin function .
2 Specification
| #include <nag.h> |
| #include <nags.h> |
| double |
nag_kelvin_kei (double x,
NagError *fail) |
|
3 Description
nag_kelvin_kei (s19adc) evaluates an approximation to the Kelvin function .
The function is based on several Chebyshev expansions.
For large , is so small that it cannot be computed without underflow and the function fails.
4 References
Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications
5 Arguments
- 1:
x – doubleInput
-
On entry: the argument of the function.
Constraint:
.
- 2:
fail – NagError *Input/Output
-
The NAG error argument (see
Section 3.6 in the Essential Introduction).
6 Error Indicators and Warnings
- NE_REAL_ARG_GT
On entry,
.
Constraint:
.
x is too large, and the result underflows and the function returns zero.
- NE_REAL_ARG_LT
On entry,
x must not be less than 0.0:
.
The function is undefined and returns zero.
7 Accuracy
Let be the absolute error in the result, and be the relative error in the argument. If is somewhat larger than the machine representation error, then we have .
For small , errors are attenuated by the function and hence are limited by the machine precision.
For medium and large , the error behaviour, like the function itself, is oscillatory and hence only absolute accuracy of the function can be maintained. For this range of , the amplitude of the absolute error decays like , which implies a strong attenuation of error. Eventually, , which is asymptotically given by , becomes so small that it cannot be calculated without causing underflow and therefore the function returns zero. Note that for large , the errors are dominated by those of the math library function exp.
Underflow may occur for a few values of
close to the zeros of
, which causes failure
NE_REAL_ARG_GT.
9 Example
The following program reads values of the argument from a file, evaluates the function at each value of and prints the results.
9.1 Program Text
Program Text (s19adce.c)
9.2 Program Data
Program Data (s19adce.d)
9.3 Program Results
Program Results (s19adce.r)