casinhf, casinh, casinhl
From cppreference.com
| ヘッダー <complex.h> で定義 |
||
| (1) | (C99以降) | |
| (2) | (C99以降) | |
| (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 が実数または整数である場合、マクロは対応する実数関数(asinhf、asinh、asinhl)を呼び出します。z が虚数である場合、マクロは関数 asin の対応する実数バージョンを呼び出し、数式 asinh(iy) = i asin(y) を実装し、戻り値の型は虚数になります。目次 |
[edit] パラメータ
| z | - | 複素数引数 |
[edit] 戻り値
エラーが発生しない場合、z の複素逆双曲線正弦が返されます。範囲は、実軸に沿って数学的に有界ではないストリップ、および虚軸に沿って区間 [−iπ/2; +iπ/2] です。
[edit] エラー処理と特殊値
エラーは math_errhandling に準拠して報告されます。
実装がIEEE浮動小数点演算をサポートしている場合、
- casinh(conj(z)) == conj(casinh(z))
- casinh(-z) == -casinh(z)
zが+0+0iの場合、結果は+0+0iとなります。zがx+∞i(任意の正の有限 x に対して)の場合、結果は+∞+π/2です。zがx+NaNi(任意の有限 x に対して)の場合、結果はNaN+NaNiとなり、FE_INVALID が発生する可能性があります。zが+∞+yi(任意の正の有限 y に対して)の場合、結果は+∞+0iです。zが+∞+∞iの場合、結果は+∞+iπ/4です。zが+∞+NaNiの場合、結果は+∞+NaNiです。zがNaN+0iの場合、結果はNaN+0iとなります。zがNaN+yi(任意の有限の非ゼロ y に対して)の場合、結果はNaN+NaNiとなり、FE_INVALID が発生する可能性があります。zがNaN+∞iの場合、結果は±∞+NaNiとなります(実部の符号は未指定)。zがNaN+NaNiの場合、結果はNaN+NaNiとなります。
[edit] 注記
C 標準ではこの関数を「複素逆双曲線正弦」と呼んでいますが、双曲線関数の逆関数は面積関数です。引数は弧ではなく、双曲線扇形の面積です。正しい名前は「複素逆双曲線正弦」、あるいはあまり一般的ではありませんが「複素面積双曲線正弦」です。
逆双曲線正弦は多価関数であり、複素平面上に分岐が必要です。分岐は、虚軸の線分 (-i∞,-i) および (i,i∞) に慣習的に配置されます。
逆双曲線正弦の主値の数学的定義は asinh z = ln(z + √1+z2
) です。
| asin(iz) |
| i |
[edit] 例
このコードを実行
#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
[edit] 参考文献
- C11標準 (ISO/IEC 9899:2011)
- 7.3.6.2 The casinh functions (p: 192-193)
- 7.25 型総称数学関数 <tgmath.h> (p: 373-375)
- G.6.2.2 The casinh functions (p: 540)
- G.7 Type-generic math <tgmath.h> (p: 545)
- C99標準 (ISO/IEC 9899:1999)
- 7.3.6.2 The casinh functions (p: 174-175)
- 7.22 型総称数学関数 <tgmath.h> (p: 335-337)
- G.6.2.2 The casinh functions (p: 475)
- G.7 Type-generic math <tgmath.h> (p: 480)
[edit] 関連項目
| (C99)(C99)(C99) |
複素アーク双曲線コサインを計算する (関数) |
| (C99)(C99)(C99) |
複素アーク双曲線タンジェントを計算する (関数) |
| (C99)(C99)(C99) |
複素双曲線サインを計算する (関数) |
| (C99)(C99)(C99) |
逆双曲線サインを計算する (arsinh(x)) (関数) |
| C++ ドキュメント (asinh)
| |