NAG C Library Function Document

1Purpose

nag_shifted_log (s01bac) returns a value of the shifted logarithmic function, $\mathrm{ln}\left(1+x\right)$.

2Specification

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

3Description

nag_shifted_log (s01bac) computes values of $\mathrm{ln}\left(1+x\right)$, retaining full relative precision even when $\left|x\right|$ is small. The function is based on the Chebyshev expansion
 $ln⁡1+p2+2px- 1+p2-2px- =4∑k=0∞p2k+1 2k+1 T2k+1x-.$
Setting $\stackrel{-}{x}=\frac{x\left(1+{p}^{2}\right)}{2p\left(x+2\right)}$, and choosing $p=\frac{q-1}{q+1}$, $q=\sqrt[4]{2}$ the expansion is valid in the domain $x\in \left[\frac{1}{\sqrt{2}}-1,\sqrt{2}-1\right]$.
Outside this domain, $\mathrm{ln}\left(1+x\right)$ is computed by the standard logarithmic function.

4References

Lyusternik L A, Chervonenkis O A and Yanpolskii A R (1965) Handbook for Computing Elementary Functions p. 57 Pergamon Press

5Arguments

1:    $\mathbf{x}$doubleInput
On entry: the argument $x$ of the function.
Constraint: ${\mathbf{x}}>-1.0$.
2:    $\mathbf{fail}$NagError *Input/Output
The NAG error argument (see Section 3.7 in How to Use the NAG Library and its Documentation).

6Error Indicators and Warnings

NE_REAL_ARG_LE
On entry, ${\mathbf{x}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{x}}>-1.0$.

7Accuracy

The returned result should be accurate almost to machine precision, with a limit of about $20$ significant figures due to the precision of internal constants. Note however, that if $x$ lies very close to $-1.0$ and is not exact (for example if $x$ is the result of some previous computation and has been rounded), then precision will be lost in the computation of $1+x$, and hence $\mathrm{ln}\left(1+x\right)$, in nag_shifted_log (s01bac).

8Parallelism and Performance

nag_shifted_log (s01bac) is not threaded in any implementation.

9Further Comments

Empirical tests show that the time taken for a call of nag_shifted_log (s01bac) usually lies between about $1.25$ and $2.5$ times the time for a call to the standard logarithm function.

10Example

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

10.1Program Text

Program Text (s01bace.c)

10.2Program Data

Program Data (s01bace.d)

10.3Program Results

Program Results (s01bace.r)