?
このドキュメントでは、 php中國語ネットマニュアル リリース
在頭文件<math.h>中定義 | ||
---|---|---|
float complex catanhf( float complex z ); | (1) | (since C99) |
double complex catanh( double complex z ); | (2) | (since C99) |
long double complex catanhl( long double complex z ); | (3) | (since C99) |
Defined in header <tgmath.h> | ||
#define atanh( z ) | (4) | (since C99) |
1-3)計(jì)算z
區(qū)間-1以外的分支切口的復(fù)數(shù)雙曲正切; +1沿實(shí)軸。
4)類型 - 通用宏:如果z
有類型long
double
complex
,catanhl
被調(diào)用。如果z
有類型double
complex
,catanh
稱為,如果z
有類型float
complex
,catanhf
稱為。如果z
是真實(shí)的或整數(shù),則宏調(diào)用相應(yīng)的實(shí)函數(shù)(atanhf
,atanh
,atanhl
)。如果z
是虛構(gòu)的,那么宏調(diào)用相應(yīng)的真實(shí)版本atan
,實(shí)現(xiàn)公式atanh(iy)= i atan(y),并且返回類型是虛構(gòu)的。
z | - | 復(fù)雜的論點(diǎn) |
---|
如果沒有出現(xiàn)錯(cuò)誤,z
則返回復(fù)數(shù)圓弧雙曲正切值,該值在半徑數(shù)值范圍內(nèi)沿著實(shí)軸且在區(qū)間-iπ/ 2中是數(shù)學(xué)上無界的; +iπ/ 2沿著虛軸。
報(bào)告的錯(cuò)誤與math_errhandling一致。
如果實(shí)現(xiàn)支持IEEE浮點(diǎn)運(yùn)算,
catanh(conj(z))
==
conj(catanh(z))
catanh(-z) == -catanh(z)
如果z
是+0+0i
,結(jié)果是+0+0i
如果z
是+0+NaNi
,結(jié)果是+0+NaNi
如果z
是+1+0i
,結(jié)果是+∞+0i
并且FE_DIVBYZERO
被提出
如果z
是x+∞i
(對(duì)于任何有限的正x),結(jié)果是+0+iπ/2
如果z
是x+NaNi
(對(duì)于任何有限的非零x),結(jié)果是NaN+NaNi
并FE_INVALID
可能被提出
如果z
是+∞+yi
(對(duì)于任何有限的正y),結(jié)果是+0+iπ/2
如果z
是+∞+∞i
,結(jié)果是+0+iπ/2
如果z
是+∞+NaNi
,結(jié)果是+0+NaNi
如果z
是NaN+yi
(對(duì)于任何有限的y),結(jié)果是NaN+NaNi
并且FE_INVALID
可能會(huì)被提出
如果z
是NaN+∞i
,結(jié)果是±0+iπ/2
(真實(shí)部分的符號(hào)未指定)
如果z
是NaN+NaNi
,結(jié)果是NaN+NaNi
盡管C標(biāo)準(zhǔn)將這個(gè)函數(shù)命名為“復(fù)圓弧雙曲正切”,但雙曲函數(shù)的反函數(shù)是區(qū)域函數(shù)。他們的論點(diǎn)是雙曲線領(lǐng)域,而不是弧線。正確的名稱是“復(fù)反雙曲正切”,并且不太常見的是“復(fù)曲面雙曲正切”。
逆雙曲正切是一種多值函數(shù),需要在復(fù)平面上進(jìn)行分支切割。分支切割通常放置在實(shí)軸的線段(-∞,-1)和[+ 1,+∞)處。反雙曲正弦的主值的數(shù)學(xué)定義是atanh z =
| ln(1+z)-ln(z-1) |
|:----|
| 2 |
.
For any z, atanh(z) =
| atan(iz) |
|:----|
| i |
#include <stdio.h>#include <complex.h> int main(void){ double complex z = catanh(2); printf("catanh(+2+0i) = %f%+fi\n", creal(z), cimag(z)); double complex z2 = catanh(conj(2)); // or catanh(CMPLX(2, -0.0)) in C11 printf("catanh(+2-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2)); // for any z, atanh(z) = atan(iz)/i double complex z3 = catanh(1+2*I); printf("catanh(1+2i) = %f%+fi\n", creal(z3), cimag(z3)); double complex z4 = catan((1+2*I)*I)/I; printf("catan(i * (1+2i))/i = %f%+fi\n", creal(z4), cimag(z4));}
輸出:
catanh(+2+0i) = 0.549306+1.570796icatanh(+2-0i) (the other side of the cut) = 0.549306-1.570796icatanh(1+2i) = 0.173287+1.178097icatan(i * (1+2i))/i = 0.173287+1.178097i
C11標(biāo)準(zhǔn)(ISO / IEC 9899:2011):
7.3.6.3函數(shù)(p:193)
7.25類型通用數(shù)學(xué)<tgmath.h>(p:373-375)
G.6.2.3通信功能(p:540-541)
G.7類型 - 通用數(shù)學(xué)<tgmath.h>(p:545)
C99標(biāo)準(zhǔn)(ISO / IEC 9899:1999):
7.3.6.3 catanh函數(shù)(p:175)
7.22類型通用數(shù)學(xué)<tgmath.h>(p:335-337)
G.6.2.3通信功能(p:475-476)
G.7類型 - 通用數(shù)學(xué)<tgmath.h>(p:480)