Intel® Math Kernel Library 2019 Developer Reference - Fortran
Computes inverse hyperbolic tangent of vector elements.
call vsatanh( n, a, y )
call vmsatanh( n, a, y, mode )
call vdatanh( n, a, y )
call vmdatanh( n, a, y, mode )
call vcatanh( n, a, y )
call vmcatanh( n, a, y, mode )
call vzatanh( n, a, y )
call vmzatanh( n, a, y, mode )
Name |
Type |
Description |
|---|---|---|
n |
INTEGER, INTENT(IN) |
Specifies the number of elements to be calculated. |
a |
DOUBLE PRECISION for vdatanh, vmdatanh COMPLEX for vcatanh, vmcatanh DOUBLE COMPLEX for vzatanh, vmzatanh REAL, INTENT(IN) for vsatanh, vmsatanh DOUBLE PRECISION, INTENT(IN) for vdatanh, vmdatanh COMPLEX, INTENT(IN) for vcatanh, vmcatanh DOUBLE COMPLEX, INTENT(IN) for vzatanh, vmzatanh |
Array that specifies the input vector a. |
mode |
INTEGER(KIND=8), INTENT(IN) |
Overrides global VM mode setting for this function call. See vmlSetMode for possible values and their description. |
Name |
Type |
Description |
|---|---|---|
y |
DOUBLE PRECISION for vdatanh, vmdatanh COMPLEX for vcatanh, vmcatanh DOUBLE COMPLEX for vzatanh, vmzatanh REAL, INTENT(OUT) for vsatanh, vmsatanh DOUBLE PRECISION, INTENT(OUT) for vdatanh, vmdatanh COMPLEX, INTENT(OUT) for vcatanh, vmcatanh DOUBLE COMPLEX, INTENT(OUT) for vzatanh, vmzatanh |
Array that specifies the output vector y. |
The v?Atanh function computes inverse hyperbolic tangent of vector elements.
| Argument | Result | VM Error Status | Exception |
|---|---|---|---|
| +1 | +∞ | VML_STATUS_SING | ZERODIVIDE |
| -1 | -∞ | VML_STATUS_SING | ZERODIVIDE |
| |X| > 1 | QNAN | VML_STATUS_ERRDOM | INVALID |
| +∞ | QNAN | VML_STATUS_ERRDOM | INVALID |
| -∞ | QNAN | VML_STATUS_ERRDOM | INVALID |
| QNAN | QNAN | ||
| SNAN | QNAN | INVALID |
See Special Value Notations for the conventions used in the table below.
RE(z) i·IM(z) |
-∞
|
-X
|
-0
|
+0
|
+X
|
+∞
|
NAN
|
|---|---|---|---|---|---|---|---|
| +i·∞ | -0+i·π/2 | -0+i·π/2 | -0+i·π/2 | +0+i·π/2 | +0+i·π/2 | +0+i·π/2 | +0+i·π/2 |
| +i·Y | -0+i·π/2 | +0+i·π/2 | QNAN+i·QNAN |
||||
| +i·0 | -0+i·π/2 | -0+i·0 | +0+i·0 | +0+i·π/2 | QNAN+i·QNAN |
||
| -i·0 | -0-i·π/2 | -0-i·0 | +0-i·0 | +0-i·π/2 | QNAN-i·QNAN |
||
| -i·Y | -0-i·π/2 | +0-i·π/2 | QNAN+i·QNAN |
||||
| -i·∞ | -0-i·π/2 | -0-i·π/2 | -0-i·π/2 | +0-i·π/2 | +0-i·π/2 | +0-i·π/2 | +0-i·π/2 |
| +i·NAN | -0+i·QNAN |
QNAN+i·QNAN |
-0+i·QNAN |
+0+i·QNAN |
QNAN+i·QNAN |
+0+i·QNAN |
QNAN+i·QNAN |
Notes:
Atanh(+-1+-i*0)=+-∞+-i*0, and ZERODIVIDE exception is raised
raises INVALID exception when real or imaginary part of the argument is SNAN
Atanh(CONJ(z))=CONJ(Atanh(z))
Atanh(-z)=-Atanh(z).