名前空間
変種
操作

casinf, casin, casinl

From cppreference.com
< c‎ | numeric‎ | complex
ヘッダー <complex.h> で定義
float complex       casinf( float complex z );
(1) (C99以降)
double complex      casin( double complex z );
(2) (C99以降)
long double complex casinl( long double complex z );
(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 が実数または整数である場合、マクロは対応する実数関数(asinfasinasinl)を呼び出します。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
)
です。

任意の z に対して、arcsin(z) = acos(-z) -
π
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 の場合
English 日本語 中文(简体) 中文(繁體)