casinf, casin, casinl
From cppreference.com
| ヘッダー <complex.h> で定義 |
||
| (1) | (C99以降) | |
| (2) | (C99以降) | |
| (3) | (C99以降) | |
| ヘッダー <tgmath.h> で定義 |
||
| #define asin( z ) |
(4) | (C99以降) |
1-3)
z の複素数アークサインを計算します。分岐点は実軸に沿った区間 [−1,+1] の外側にあります。4) 型汎用マクロ:
z の型が long double complex の場合、casinl が呼び出されます。z の型が double complex の場合、casin が呼び出されます。z の型が float complex の場合、casinf が呼び出されます。z が実数または整数である場合、マクロは対応する実数関数(asinf、asin、asinl)を呼び出します。z が虚数である場合、マクロは関数 asinh の対応する実数バージョンを呼び出し、式 arcsin(iy) = i arsinh(y) を実装します。マクロの戻り値の型は虚数になります。目次 |
[edit] パラメータ
| z | - | 複素数引数 |
[edit] 戻り値
エラーが発生しない場合、z の複素数アークサインが返されます。範囲は、虚軸に沿って有界でないストリップと、実軸に沿った区間 [−π/2; +π/2] です。
エラーおよび特殊ケースは、操作が -I * casinh(I*z) によって実装されているかのように処理されます。
[edit] 注記
逆正弦(アークサイン)は多価関数であり、複素平面上に分岐切断が必要です。分岐切断は、通常、実軸上の線分 (-∞,-1) および (1,∞) に配置されます。
アークサインの主値の数学的定義は、arcsin z = -iln(iz + √1-z2
) です。
| π |
| 2 |
[edit] 例
このコードを実行
#include <stdio.h> #include <math.h> #include <complex.h> int main(void) { double complex z = casin(-2); printf("casin(-2+0i) = %f%+fi\n", creal(z), cimag(z)); double complex z2 = casin(conj(-2)); // or CMPLX(-2, -0.0) printf("casin(-2-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2)); // for any z, asin(z) = acos(-z) - pi/2 double pi = acos(-1); double complex z3 = csin(cacos(conj(-2))-pi/2); printf("csin(cacos(-2-0i)-pi/2) = %f%+fi\n", creal(z3), cimag(z3)); }
出力
casin(-2+0i) = -1.570796+1.316958i casin(-2-0i) (the other side of the cut) = -1.570796-1.316958i csin(cacos(-2-0i)-pi/2) = 2.000000+0.000000i
[edit] 参考文献
- C11標準 (ISO/IEC 9899:2011)
- 7.3.5.2 casin 関数 (p: 190)
- 7.25 型総称数学関数 <tgmath.h> (p: 373-375)
- G.7 Type-generic math <tgmath.h> (p: 545)
- C99標準 (ISO/IEC 9899:1999)
- 7.3.5.2 casin 関数 (p: 172)
- 7.22 型総称数学関数 <tgmath.h> (p: 335-337)
- G.7 Type-generic math <tgmath.h> (p: 480)
[edit] 関連項目
| (C99)(C99)(C99) |
複素アークコサインを計算する (関数) |
| (C99)(C99)(C99) |
複素アークタンジェントを計算する (関数) |
| (C99)(C99)(C99) |
複素サインを計算する (関数) |
| (C99)(C99) |
アークサインを計算する (arcsin(x)) (関数) |
| C++ ドキュメント
asin の場合 | |