nag_arccosh (s11acc) calculates an approximate value for the inverse hyperbolic cosine,
$\mathrm{arccosh}x$. It is based on the relation
This form is used directly for
$1<x<{10}^{k}$, where
$k=n/2+1$, and the machine uses approximately
$n$ decimal place arithmetic.
For
$x\ge {10}^{k}$,
$\sqrt{{x}^{2}-1}$ is equal to
$\sqrt{x}$ to within the accuracy of the machine and hence we can guard against premature overflow and, without loss of accuracy, calculate
If
$\delta $ and
$\epsilon $ are the relative errors in the argument and result respectively, then in principle
That is the relative error in the argument is amplified by a factor at least
$\frac{x}{\sqrt{{x}^{2}-1}\mathrm{arccosh}x}$ in the result. The equality should apply if
$\delta $ is greater than the
machine precision (
$\delta $ due to data errors etc.) but if
$\delta $ is simply a result of round-off in the machine representation it is possible that an extra figure may be lost in internal calculation and round-off. The behaviour of the amplification factor is shown in the following graph:
Figure 1
It should be noted that for
$x>2$ the factor is always less than
$1.0$. For large
$x$ we have the absolute error
$E$ in the result, in principle, given by
This means that eventually accuracy is limited by
machine precision. More significantly for
$x$ close to
$1$,
$x-1\sim \delta $, the above analysis becomes inapplicable due to the fact that both function and argument are bounded,
$x\ge 1$,
$\mathrm{arccosh}x\ge 0$. In this region we have
That is, there will be approximately half as many decimal places correct in the result as there were correct figures in the argument.
nag_arccosh (s11acc) is not threaded in any implementation.
None.