NAG Library Function Documentnag_arccosh (s11acc)

1  Purpose

nag_arccosh (s11acc) returns the value of the inverse hyperbolic cosine, $\mathrm{arccosh}x$. The result is in the principal positive branch.

2  Specification

#include <nag.h>
#include <nags.h>

double  nag_arccosh (double x,  NagError *fail)

3  Description

nag_arccosh (s11acc) calculates an approximate value for the inverse hyperbolic cosine, $\mathrm{arccosh}x$. It is based on the relation

$arccosh⁡x = ln x + x 2 - 1 .$
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

$arccosh⁡x = ln⁡2 + ln⁡x .$

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 $x$ of the function.
Constraint: ${\mathbf{x}}\ge 1.0$.
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_LT
On entry, x must not be less than 1.0: ${\mathbf{x}}=〈\mathit{\text{value}}〉$.
$\mathrm{arccosh}x$ is not defined and the result returned is zero.

7  Accuracy

If $\delta $ and $\epsilon $ are the relative errors in the argument and result respectively, then in principle

$ε ≃ x x 2 - 1 arccosh⁡x δ .$
That is the relative error in the argument is amplified by a factor at least

$x x 2 - 1 arccosh⁡x$
in the result. The equality should apply if $\delta $ is greater than the machine precision ($\delta $ due to data error 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.
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

$E ∼ δ .$
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

$E ∼ δ .$
That is, there will be approximately half as many decimal places correct in the result as there were correct figures in the argument.

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 (s11acce.c)

9.2  Program Data

Program Data (s11acce.d)

9.3  Program Results

Program Results (s11acce.r)
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 31, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": false, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 20, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "plain"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.7409217357635498, "perplexity_flag": "middle"}