s Chapter Contents
s Chapter Introduction
NAG C Library Manual

# NAG Library Function Documentnag_kelvin_kei (s19adc)

## 1  Purpose

nag_kelvin_kei (s19adc) returns a value for the Kelvin function $\mathrm{kei}x$.

## 2  Specification

 #include #include
 double nag_kelvin_kei (double x, NagError *fail)

## 3  Description

nag_kelvin_kei (s19adc) evaluates an approximation to the Kelvin function $\mathrm{kei}x$.
The function is based on several Chebyshev expansions.
For large $x$, $\mathrm{kei}x$ 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:     xdoubleInput
On entry: the argument $x$ of the function.
Constraint: ${\mathbf{x}}\ge 0$.
2:     failNagError *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, ${\mathbf{x}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{x}}\le 〈\mathit{\text{value}}〉$.
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: ${\mathbf{x}}=〈\mathit{\text{value}}〉$.
The function is undefined and returns zero.

## 7  Accuracy

Let $E$ be the absolute error in the result, and $\delta$ be the relative error in the argument. If $\delta$ is somewhat larger than the machine representation error, then we have $E\simeq \left|x\left(-{\mathrm{ker}}_{1}x+{\mathrm{kei}}_{1}x\right)/\sqrt{2}\right|\delta$.
For small $x$, errors are attenuated by the function and hence are limited by the machine precision.
For medium and large $x$, the error behaviour, like the function itself, is oscillatory and hence only absolute accuracy of the function can be maintained. For this range of $x$, the amplitude of the absolute error decays like $\sqrt{\pi x/2}{e}^{-x/\sqrt{2}}$, which implies a strong attenuation of error. Eventually, $\mathrm{kei}x$, which is asymptotically given by $\sqrt{\pi /2x}{e}^{-x/\sqrt{2}}$, becomes so small that it cannot be calculated without causing underflow and therefore the function returns zero. Note that for large $x$, the errors are dominated by those of the math library function exp.

Underflow may occur for a few values of $x$ close to the zeros of $\mathrm{kei}x$, which causes failure NE_REAL_ARG_GT.

## 9  Example

The following program reads values of the argument $x$ from a file, evaluates the function at each value of $x$ and prints the results.