名稱空間
變體
操作

casinhf, casinh, casinhl

來自 cppreference.com
< c‎ | numeric‎ | complex
定義在標頭檔案 <complex.h>
float complex       casinhf( float complex z );
(1) (C99 起)
double complex      casinh( double complex z );
(2) (C99 起)
long double complex casinhl( long double complex z );
(3) (C99 起)
定義於標頭檔案 <tgmath.h>
#define asinh( z )
(4) (C99 起)
1-3) 計算 z 的複數反雙曲正弦,沿虛軸在區間 [−i; +i] 之外有分支切口。
4) 型別通用宏:如果 z 的型別是 long double complex,則呼叫 casinhl。如果 z 的型別是 double complex,則呼叫 casinh。如果 z 的型別是 float complex,則呼叫 casinhf。如果 z 是實數或整數,則宏呼叫相應的實數函式(asinhfasinhasinhl)。如果 z 是虛數,則宏呼叫函式 asin 的相應實數版本,實現公式 asinh(iy) = i asin(y),並且返回型別是虛數。

目錄

[編輯] 引數

z - 複數引數

[編輯] 返回值

如果未發生錯誤,則返回 z 的複數反雙曲正弦,其範圍沿實軸在數學上是無界的,沿虛軸在區間 [−iπ/2; +iπ/2] 內。

[編輯] 錯誤處理和特殊值

錯誤按照 math_errhandling 報告

如果實現支援 IEEE 浮點算術,

  • casinh(conj(z)) == conj(casinh(z))
  • casinh(-z) == -casinh(z)
  • 如果 z+0+0i,結果是 +0+0i
  • 如果 zx+∞i(對於任何正有限 x),結果是 +∞+π/2
  • 如果 zx+NaNi(對於任何有限 x),結果是 NaN+NaNi 且可能會引發 FE_INVALID
  • 如果 z+∞+yi(對於任何正有限 y),結果是 +∞+0i
  • 如果 z+∞+∞i,結果是 +∞+iπ/4
  • 如果 z+∞+NaNi,結果是 +∞+NaNi
  • 如果 zNaN+0i,結果是 NaN+0i
  • 如果 zNaN+yi(對於任何非零有限 y),結果是 NaN+NaNi 且可能會引發 FE_INVALID
  • 如果 zNaN+∞i,結果是 ±∞+NaNi(實部的符號未指定)
  • zNaN+NaNi,則結果為 NaN+NaNi

[編輯] 注意

儘管 C 標準將此函式命名為“複數反雙曲正弦”,但雙曲函式的反函式是面積函式。它們的引數是雙曲扇形的面積,而不是弧。正確的名稱是“複數逆雙曲正弦”,更不常見的是“複數面積雙曲正弦”。

反雙曲正弦是一個多值函式,需要在複平面上進行分支切割。分支切割通常放置在虛軸上的線段 (-i∞,-i)(i,i∞) 處。

反雙曲正弦主值的數學定義是 asinh z = ln(z + 1+z2
)

對於任何 z,asinh(z) =
asin(iz)
i

[編輯] 示例

#include <stdio.h>
#include <complex.h>
 
int main(void)
{
    double complex z = casinh(0+2*I);
    printf("casinh(+0+2i) = %f%+fi\n", creal(z), cimag(z));
 
    double complex z2 = casinh(-conj(2*I)); // or casinh(CMPLX(-0.0, 2)) in C11
    printf("casinh(-0+2i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
 
    // for any z, asinh(z) = asin(iz)/i
    double complex z3 = casinh(1+2*I);
    printf("casinh(1+2i) = %f%+fi\n", creal(z3), cimag(z3));
    double complex z4 = casin((1+2*I)*I)/I;
    printf("casin(i * (1+2i))/i = %f%+fi\n", creal(z4), cimag(z4));
}

輸出

casinh(+0+2i) = 1.316958+1.570796i
casinh(-0+2i) (the other side of the cut) = -1.316958+1.570796i
casinh(1+2i) = 1.469352+1.063440i
casin(i * (1+2i))/i =  1.469352+1.063440i

[編輯] 參考

  • C11 標準 (ISO/IEC 9899:2011)
  • 7.3.6.2 casinh 函式 (p: 192-193)
  • 7.25 型別通用數學 <tgmath.h> (p: 373-375)
  • G.6.2.2 casinh 函式 (p: 540)
  • G.7 型別通用數學 <tgmath.h> (p: 545)
  • C99 標準 (ISO/IEC 9899:1999)
  • 7.3.6.2 casinh 函式 (p: 174-175)
  • 7.22 型別通用數學 <tgmath.h> (p: 335-337)
  • G.6.2.2 casinh 函式 (p: 475)
  • G.7 型別通用數學 <tgmath.h> (p: 480)

[編輯] 另請參閱

(C99 起)(C99 起)(C99 起)
計算復反雙曲餘弦
(函式) [編輯]
(C99 起)(C99 起)(C99 起)
計算復反雙曲正切
(函式) [編輯]
(C99 起)(C99 起)(C99 起)
計算復雙曲正弦
(函式) [編輯]
(C99 起)(C99 起)(C99 起)
計算反雙曲正弦 (arsinh(x))
(函式) [編輯]
C++ 文件 關於 asinh