名前空間
変種
操作

catanf, catan, catanl

提供: 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) 型総称マクロ。 zlong double complex 型の場合は catanl が呼ばれ、 zdouble complex 型の場合は catan が呼ばれ、 zfloat 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 standard (ISO/IEC 9899:2011):
  • 7.3.5.3 The catan functions (p: 191)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • G.7 Type-generic math <tgmath.h> (p: 545)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.3.5.3 The catan functions (p: 173)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • G.7 Type-generic math <tgmath.h> (p: 480)

[編集] 関連項目

(C99)(C99)(C99)
複素数の逆正弦を計算します
(関数) [edit]
(C99)(C99)(C99)
複素数の逆余弦を計算します
(関数) [edit]
(C99)(C99)(C99)
複素正接を計算します
(関数) [edit]
(C99)(C99)
逆正接 (arctan(x)) を計算します
(関数) [edit]