cacoshf, cacosh, cacoshl
From cppreference.com
| ヘッダー <complex.h> で定義 |
||
| (1) | (C99以降) | |
| (2) | (C99以降) | |
| (3) | (C99以降) | |
| ヘッダー <tgmath.h> で定義 |
||
| #define acosh( z ) |
(4) | (C99以降) |
1-3) 複素数
zの複素逆双曲線余弦を計算します。実軸に沿った1未満の値に枝分かれがあります。4) 型汎用マクロ:
zの型がlong double complexの場合、cacoshlが呼び出されます。zの型がdouble complexの場合、cacoshが呼び出されます。zの型がfloat complexの場合、cacoshfが呼び出されます。zが実数または整数である場合、マクロは対応する実数関数(acoshf、acosh、acoshl)を呼び出します。zが虚数である場合、マクロは対応する複素数バージョンを呼び出し、戻り値の型は複素数になります。目次 |
[編集] パラメータ
| z | - | 複素数引数 |
[編集] 戻り値
zの複素逆双曲線余弦。実軸に沿っては区間[0; ∞)、虚軸に沿っては区間[−iπ; +iπ]の範囲で定義されます。
[編集] エラー処理と特殊値
エラーは math_errhandling に準拠して報告されます。
実装がIEEE浮動小数点演算をサポートしている場合、
- cacosh(conj(z)) == conj(cacosh(z))
zが±0+0iの場合、結果は+0+iπ/2になります。zが+x+∞i(任意の有限なxに対して)の場合、結果は+∞+iπ/2になります。zが+x+NaNi(ゼロでない有限なxに対して)の場合、結果はNaN+NaNiになり、FE_INVALIDが発生する可能性があります。zが0+NaNiの場合、結果はNaN±iπ/2になり、虚数部の符号は未指定です。zが-∞+yi(任意の正の有限なyに対して)の場合、結果は+∞+iπになります。zが+∞+yi(任意の正の有限なyに対して)の場合、結果は+∞+0iになります。zが-∞+∞iの場合、結果は+∞+3iπ/4になります。zが+∞+∞iの場合、結果は+∞+iπ/4になります。zが±∞+NaNiの場合、結果は+∞+NaNiになります。zがNaN+yi(任意の有限なyに対して)の場合、結果はNaN+NaNiになり、FE_INVALIDが発生する可能性があります。zがNaN+∞iの場合、結果は+∞+NaNiになります。zがNaN+NaNiの場合、結果はNaN+NaNiとなります。
[編集] 注記
C標準ではこの関数を「複素逆双曲線余弦」と呼んでいますが、双曲線関数の逆関数は面積関数です。引数は円弧ではなく、双曲線扇形の面積です。正しい名称は「複素逆双曲線余弦」であり、あまり一般的ではありませんが、「複素面積双曲線余弦」とも呼ばれます。
逆双曲線余弦は多価関数であり、複素平面上に枝切りが必要です。枝切りは通常、実軸の線分(-∞,+1)に配置されます。
主値の逆双曲線余弦の数学的定義はacosh z = ln(z + √z+1 √z-1)です。
任意のzに対して、acosh(z) =| √z-1 |
| √1-z |
[編集] 例
このコードを実行
#include <stdio.h> #include <complex.h> int main(void) { double complex z = cacosh(0.5); printf("cacosh(+0.5+0i) = %f%+fi\n", creal(z), cimag(z)); double complex z2 = conj(0.5); // or cacosh(CMPLX(0.5, -0.0)) in C11 printf("cacosh(+0.5-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2)); // in upper half-plane, acosh(z) = i*acos(z) double complex z3 = casinh(1+I); printf("casinh(1+1i) = %f%+fi\n", creal(z3), cimag(z3)); double complex z4 = I*casin(1+I); printf("I*asin(1+1i) = %f%+fi\n", creal(z4), cimag(z4)); }
出力
cacosh(+0.5+0i) = 0.000000-1.047198i cacosh(+0.5-0i) (the other side of the cut) = 0.500000-0.000000i casinh(1+1i) = 1.061275+0.666239i I*asin(1+1i) = -1.061275+0.666239i
[編集] 参考文献
- C11標準 (ISO/IEC 9899:2011)
- 7.3.6.1 The cacosh functions (p: 192)
- 7.25 型総称数学関数 <tgmath.h> (p: 373-375)
- G.6.2.1 The cacosh functions (p: 539-540)
- G.7 Type-generic math <tgmath.h> (p: 545)
- C99標準 (ISO/IEC 9899:1999)
- 7.3.6.1 The cacosh functions (p: 174)
- 7.22 型総称数学関数 <tgmath.h> (p: 335-337)
- G.6.2.1 The cacosh functions (p: 474-475)
- G.7 Type-generic math <tgmath.h> (p: 480)
[編集] 関連項目
| (C99)(C99)(C99) |
複素アークコサインを計算する (関数) |
| (C99)(C99)(C99) |
複素アーク双曲線サインを計算する (関数) |
| (C99)(C99)(C99) |
複素アーク双曲線タンジェントを計算する (関数) |
| (C99)(C99)(C99) |
複素双曲線コサインを計算する (関数) |
| (C99)(C99)(C99) |
逆双曲線コサインを計算する (arcosh(x)) (関数) |
| C++ドキュメント (acosh)
| |