atanh¶
- atanh(x: array, /) array ¶
Calculates an implementation-dependent approximation to the inverse hyperbolic tangent for each element
x_i
of the input arrayx
.Note
The principal value of the inverse hyperbolic tangent of a complex number \(z\) is
\[\operatorname{atanh}(z) = \frac{\ln(1+z)-\ln(z-1)}{2}\]For any \(z\),
\[\operatorname{atanh}(z) = \frac{\operatorname{atan}(zj)}{j}\]Note
For complex floating-point operands,
atanh(conj(x))
must equalconj(atanh(x))
andatanh(-x)
must equal-atanh(x)
.Note
The inverse hyperbolic tangent is a multi-valued function and requires a branch cut on the complex plane. By convention, a branch cut is placed at the line segments \((-\infty, 1]\) and \([1, \infty)\) of the real axis.
Accordingly, for complex arguments, the function returns the inverse hyperbolic tangent in the range of a half-strip unbounded along the real axis and in the interval \([-\pi j/2, +\pi j/2]\) along the imaginary axis.
Note: branch cuts follow C99 and have provisional status (see Branch Cuts).
- Parameters:
x (array) – input array whose elements each represent the area of a hyperbolic sector. Should have a floating-point data type.
- Returns:
out (array) – an array containing the inverse hyperbolic tangent of each element in
x
. The returned array must have a floating-point data type determined by Type Promotion Rules.
Notes
Special cases
For real-valued floating-point operands,
If
x_i
isNaN
, the result isNaN
.If
x_i
is less than-1
, the result isNaN
.If
x_i
is greater than1
, the result isNaN
.If
x_i
is-1
, the result is-infinity
.If
x_i
is+1
, the result is+infinity
.If
x_i
is+0
, the result is+0
.If
x_i
is-0
, the result is-0
.
For complex floating-point operands, let
a = real(x_i)
,b = imag(x_i)
, andIf
a
is+0
andb
is+0
, the result is+0 + 0j
.If
a
is+0
andb
isNaN
, the result is+0 + NaN j
.If
a
is1
andb
is+0
, the result is+infinity + 0j
.If
a
is a positive (i.e., greater than0
) finite number andb
is+infinity
, the result is+0 + πj/2
.If
a
is a nonzero finite number andb
isNaN
, the result isNaN + NaN j
.If
a
is+infinity
andb
is a positive (i.e., greater than0
) finite number, the result is+0 + πj/2
.If
a
is+infinity
andb
is+infinity
, the result is+0 + πj/2
.If
a
is+infinity
andb
isNaN
, the result is+0 + NaN j
.If
a
isNaN
andb
is a finite number, the result isNaN + NaN j
.If
a
isNaN
andb
is+infinity
, the result is±0 + πj/2
(sign of the real component is unspecified).If
a
isNaN
andb
isNaN
, the result isNaN + NaN j
.
Changed in version 2022.12: Added complex data type support.