cpp/numeric/math/atanh

@1-3@ Computes the inverse hyperbolic tangent of. @A@ Additional overloads are provided for all integer types, which are treated as.

Return value
If no errors occur, the inverse hyperbolic tangent of ($tanh-1 (num)$, or $artanh(num)$), is returned.

If a domain error occurs, an implementation-defined value is returned (NaN where supported).

If a pole error occurs, huge_val,, or is returned (with the correct sign).

If a range error occurs due to underflow, the correct result (after rounding) is returned.

Error handling
Errors are reported as specified in math_errhandling.

If the argument is not on the interval $[-1, +1]$, a range error occurs.

If the argument is ±1, a pole error occurs.

If the implementation supports IEEE floating-point arithmetic (IEC 60559),
 * if the argument is ±0, it is returned unmodified
 * if the argument is ±1, ±∞ is returned and fe_divbyzero is raised
 * if $|num|>1$, NaN is returned and fe_invalid is raised
 * if the argument is NaN, NaN is returned