cacoshf, cacosh, cacoshl
|
ヘッダーで定義
<complex.h>
|
||
| (1) | (C99以降) | |
| (2) | (C99以降) | |
| (3) | (C99以降) | |
|
ヘッダーで定義
<tgmath.h>
|
||
|
#define acosh( z )
|
(4) | (C99以降) |
z
の複素逆双曲線余弦を計算します。実軸に沿って1未満の値では分岐切断が生じます。
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 )
For any 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 cacosh関数群 (p: 192)
-
- 7.25 総称数学 <tgmath.h> (p: 373-375)
-
- G.6.2.1 cacosh関数群 (p: 539-540)
-
- G.7 総称数学 <tgmath.h> (p: 545)
- C99規格 (ISO/IEC 9899:1999):
-
- 7.3.6.1 cacosh関数群 (p: 174)
-
- 7.22 総称数学 <tgmath.h> (p: 335-337)
-
- G.6.2.1 cacosh関数群 (p: 474-475)
-
- G.7 総称数学 <tgmath.h> (p: 480)
関連項目
|
(C99)
(C99)
(C99)
|
複素数の逆余弦を計算する
(関数) |
|
(C99)
(C99)
(C99)
|
複素数の逆双曲線正弦を計算する
(関数) |
|
(C99)
(C99)
(C99)
|
複素数の逆双曲線正接を計算する
(関数) |
|
(C99)
(C99)
(C99)
|
複素数の双曲線余弦を計算する
(関数) |
|
(C99)
(C99)
(C99)
|
逆双曲線余弦を計算する (
arcosh(x)
)
(関数) |
|
C++ドキュメント
for
acosh
|
|