s Chapter Contents
s Chapter Introduction
NAG C Library Manual

# NAG Library Function Documentnag_kelvin_ber (s19aac)

## 1  Purpose

nag_kelvin_ber (s19aac) returns a value for the Kelvin function $\mathrm{ber}x$.

## 2  Specification

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

## 3  Description

nag_kelvin_ber (s19aac) evaluates an approximation to the Kelvin function $\mathrm{ber}x$.
The function is based on several Chebyshev expansions.
For large $x$, there is a danger of the result being totally inaccurate, as the error amplification factor grows in an essentially exponential manner; therefore the function must fail.

## 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.
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: $\left|{\mathbf{x}}\right|\le 〈\mathit{\text{value}}〉$.
$\left|{\mathbf{x}}\right|$ is too large for an accurate result to be returned and the function returns zero.

## 7  Accuracy

Since the function is oscillatory, the absolute error rather than the relative error is important. 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 precision, then we have $E\simeq \left|x\left({\mathrm{ber}}_{1}x+{\mathrm{bei}}_{1}x\right)/\sqrt{2}\right|\delta$ (provided $E$ is within machine bounds).
For small $x$ the error amplification is insignificant and thus the absolute error is effectively bounded by the machine precision.
For medium and large $x$, the error behaviour is oscillatory and its amplitude grows like $\sqrt{x/2\pi }{e}^{x/\sqrt{2}}$. Therefore it is not possible to calculate the function with any accuracy when $\sqrt{x}{e}^{x/\sqrt{2}}>\sqrt{2\pi }/\delta$. Note that this value of $x$ is much smaller than the minimum value of $x$ for which the function overflows.

None.

## 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.

### 9.1  Program Text

Program Text (s19aace.c)

### 9.2  Program Data

Program Data (s19aace.d)

### 9.3  Program Results

Program Results (s19aace.r)