名前空間
変種
操作

catanf, catan, catanl

From cppreference.com
< c‎ | numeric‎ | complex
ヘッダー <complex.h> で定義
float complex       catanf( float complex z );
(1) (C99以降)
double complex      catan( double complex z );
(2) (C99以降)
long double complex catanl( long double complex z );
(3) (C99以降)
ヘッダー <tgmath.h> で定義
#define atan( z )
(4) (C99以降)
1-3) z の複素数アークタンジェントを計算します。分岐カットは虚軸に沿って区間 [−i,+i] の外側にあります。
4) 型汎用マクロ: z の型が long double complex の場合、catanl が呼び出されます。z の型が double complex の場合、catan が呼び出されます。z の型が float complex の場合、catanf が呼び出されます。z が実数または整数である場合、マクロは対応する実数関数(atanfatanatanl)を呼び出します。z が虚数である場合、マクロは対応する実数バージョンの関数 atanh を呼び出し、式 atan(iy) = i atanh(y) を実装し、マクロの戻り値の型は虚数になります。

目次

[編集] パラメータ

z - 複素数引数

[編集] 戻り値

エラーが発生しない場合、z の複素数アークタンジェントが返されます。範囲は、虚軸に沿って無限大ですが、実軸に沿っては区間 [−π/2; +π/2] になります。

エラーおよび特殊ケースは、操作が -I * catanh(I*z) によって実装されているかのように処理されます。

[編集] 注記

逆正接(またはアークタンジェント)は多価関数であり、複素平面上に分岐カットが必要です。分岐カットは、慣例により虚軸上の線分 (-∞i,-i)(+i,+∞i) に配置されます。

逆正接の主値の数学的定義は atan z = -
1
2
i [ln(1 - iz) - ln (1 + iz]
です。

[編集]

#include <stdio.h>
#include <float.h>
#include <complex.h>
 
int main(void)
{
    double complex z = catan(2*I);
    printf("catan(+0+2i) = %f%+fi\n", creal(z), cimag(z));
 
    double complex z2 = catan(-conj(2*I)); // or CMPLX(-0.0, 2)
    printf("catan(-0+2i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
 
    double complex z3 = 2*catan(2*I*DBL_MAX); // or CMPLX(0, INFINITY)
    printf("2*catan(+0+i*Inf) = %f%+fi\n", creal(z3), cimag(z3));
}

出力

catan(+0+2i) = 1.570796+0.549306i
catan(-0+2i) (the other side of the cut) = -1.570796+0.549306i
2*catan(+0+i*Inf) = 3.141593+0.000000i

[編集] 参考文献

  • C11標準 (ISO/IEC 9899:2011)
  • 7.3.5.3 The catan functions (p: 191)
  • 7.25 型総称数学関数 <tgmath.h> (p: 373-375)
  • G.7 Type-generic math <tgmath.h> (p: 545)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.3.5.3 The catan functions (p: 173)
  • 7.22 型総称数学関数 <tgmath.h> (p: 335-337)
  • G.7 Type-generic math <tgmath.h> (p: 480)

[編集] 関連項目

(C99)(C99)(C99)
複素アークサインを計算する
(関数) [編集]
(C99)(C99)(C99)
複素アークコサインを計算する
(関数) [編集]
(C99)(C99)(C99)
複素タンジェントを計算する
(関数) [編集]
(C99)(C99)
アークタンジェントを計算する (arctan(x))
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)