s11aa returns the value of the inverse hyperbolic tangent, $\mathrm{arctanh}\u200ax$.

# Syntax

C# |
---|

public static double s11aa( double x, out int ifail ) |

Visual Basic |
---|

Public Shared Function s11aa ( _ x As Double, _ <OutAttribute> ByRef ifail As Integer _ ) As Double |

Visual C++ |
---|

public: static double s11aa( double x, [OutAttribute] int% ifail ) |

F# |
---|

static member s11aa : x : float * ifail : int byref -> float |

#### Parameters

- x
- Type: System..::..Double
*On entry*: the argument $x$ of the function.*Constraint*: $\left|{\mathbf{x}}\right|<1.0$.

- ifail
- Type: System..::..Int32%
*On exit*: ${\mathbf{ifail}}={0}$ unless the method detects an error or a warning has been flagged (see [Error Indicators and Warnings]).

#### Return Value

s11aa returns the value of the inverse hyperbolic tangent, $\mathrm{arctanh}\u200ax$.

# Description

s11aa calculates an approximate value for the inverse hyperbolic tangent of its argument, $\mathrm{arctanh}\u200ax$.

For ${x}^{2}\le \frac{1}{2}$ it is based on the Chebyshev expansion

where $-\frac{1}{\sqrt{2}}\le x\le \frac{1}{\sqrt{2}}$, $\text{\hspace{1em}}-1\le t\le 1$, $\text{\hspace{1em} and \hspace{1em}}t=4{x}^{2}-1$.

$$\mathrm{arctanh}\u200ax=x\times y\left(t\right)=x\underset{r=0}{{\sum}^{\prime}}\phantom{\rule{0.25em}{0ex}}{a}_{r}{T}_{r}\left(t\right)$$ |

For $\frac{1}{2}<{x}^{2}<1$, it uses

For $\left|x\right|\ge 1$, the method fails as $\mathrm{arctanh}\u200ax$ is undefined.

$$\mathrm{arctanh}\u200ax=\frac{1}{2}\mathrm{ln}\left(\frac{1+x}{1-x}\right)\text{.}$$ |

# References

Abramowitz M and Stegun I A (1972)

*Handbook of Mathematical Functions*(3rd Edition) Dover Publications# Error Indicators and Warnings

Errors or warnings detected by the method:

- ${\mathbf{ifail}}=1$
- The method has been called with an argument greater than or equal to $1.0$ in magnitude, for which $\mathrm{arctanh}$ is not defined. On failure, the result is returned as zero.

# Accuracy

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, $x$, is amplified by at least a factor $\frac{x}{\left(1-{x}^{2}\right)\mathrm{arctanh}\u200ax}$ in the result. The equality should hold if $\delta $ is greater than the machine precision ($\delta $ due to data errors etc.) but if $\delta $ is simply due to round-off in the machine representation then it is possible that an extra figure may be lost in internal calculation round-off.

$$\left|\epsilon \right|\simeq \left|\frac{x}{\left(1-{x}^{2}\right)\mathrm{arctanh}\u200ax}\times \delta \right|\text{.}$$ |

The factor is not significantly greater than one except for arguments close to $\left|x\right|=1$. However in the region where $\left|x\right|$ is close to one, $1-\left|x\right|\sim \delta $, the above analysis is inapplicable since $x$ is bounded by definition, $\left|x\right|<1$. In this region where arctanh is tending to infinity we have

which implies an obvious, unavoidable serious loss of accuracy near $\left|x\right|\sim 1$, e.g., if $x$ and $1$ agree to $6$ significant figures, the result for $\mathrm{arctanh}\u200ax$ would be correct to at most about one figure.

$$\epsilon \sim 1/\mathrm{ln}\u200a\delta $$ |

# Parallelism and Performance

None.

# Further Comments

None.

# Example

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

Example program (C#): s11aae.cs