名前空間
変種
操作

ctanhf, ctanh, ctanhl

提供: cppreference.com
< c‎ | numeric‎ | complex
ヘッダ <complex.h> で定義
float complex       ctanhf( float complex z );
(1) (C99以上)
double complex      ctanh( double complex z );
(2) (C99以上)
long double complex ctanhl( long double complex z );
(3) (C99以上)
ヘッダ <tgmath.h> で定義
#define tanh( z )
(4) (C99以上)
1-3) z の複素双曲線正接を計算します。
4) 型装飾マクロ。 zlong double complex 型の場合は ctanhl が呼ばれ、 zdouble complex 型の場合は ctanh が呼ばれ、 zfloat complex 型の場合は ctanhf が呼ばれます。 z が実数または整数の場合、このマクロは対応する実数の関数 (tanhftanhtanhl) を呼びます。 z が虚数の場合、このマクロは関数 tan の対応する実数版を呼んで公式 tanh(iy) = i tan(y) を実装し、戻り値型は虚数になります。

目次

[編集] 引数

z - 複素数の引数

[編集] 戻り値

エラーが発生しなければ、 z の複素双曲線正接が返されます。

[編集] エラー処理および特殊な値

エラーは math_errhandling と一貫性があるように報告されます。

処理系が IEEE 浮動小数点算術をサポートしている場合、

  • ctanh(conj(z)) == conj(ctanh(z)) です。
  • ctanh(-z) == -ctanh(z) です。
  • z+0+0i であれば、結果は +0+0i です。
  • zx+∞i (ただし x は任意の[1]有限な値) であれば、結果は NaN+NaNi であり、 FE_INVALID が発生します。
  • zx+NaN (ただし x は任意の[2]有限な値) であれば、結果は NaN+NaNi であり、 FE_INVALID が発生するかもしれません。
  • z+∞+yi (ただし y は任意の有限な正の値) であれば、結果は 1+0i です。
  • z+∞+∞i であれば、結果は 1±0i (虚部の符号は未規定) です。
  • z+∞+NaNi であれば、結果は 1±0i (虚部の符号は未規定) です。
  • zNaN+0i であれば、結果は NaN+0i です。
  • zNaN+yi (ただし y は任意の非ゼロな値) であれば、結果は NaN+NaNi であり、 FE_INVALID が発生するかもしれません。
  • zNaN+NaNi であれば、結果は NaN+NaNi です。
  1. DR471 によれば、これは非ゼロな x に対してのみ適用されます。 z0+∞i の場合、結果は 0+NaNi であるべきです。
  2. DR471 によれば、これは非ゼロな x に対してのみ適用されます。 z0+NaNi の場合、結果は 0+NaNi であるべきです。

[編集] ノート

双曲線正接の数学的な定義は tanh z =
ez
-e-z
ez
+e-z
です。

双曲線正接は複素平面上の解析関数であり、分岐切断を持ちません。 双曲線正接は虚部に関して πi の周期で周期的であり、虚数線に沿って座標 (0, π(1/2 + n)) に位数 1 の極を持ちます。 しかし一般的な浮動小数点表現では π/2 を正確に表すことはできず、そのため極エラーが発生するような引数の値はありません。

[編集]

#include <stdio.h>
#include <math.h>
#include <complex.h>
 
int main(void)
{
    double complex z = ctanh(1);  // behaves like real tanh along the real line
    printf("tanh(1+0i) = %f%+fi (tanh(1)=%f)\n", creal(z), cimag(z), tanh(1));
 
    double complex z2 = ctanh(I); // behaves like tangent along the imaginary line
    printf("tanh(0+1i) = %f%+fi ( tan(1)=%f)\n", creal(z2), cimag(z2), tan(1));
}

出力:

tanh(1+0i) = 0.761594+0.000000i (tanh(1)=0.761594)
tanh(0+1i) = 0.000000+1.557408i ( tan(1)=1.557408)

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.3.6.6 The ctanh functions (p: 194)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • G.6.2.6 The ctanh functions (p: 542)
  • G.7 Type-generic math <tgmath.h> (p: 545)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.3.6.6 The ctanh functions (p: 176)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • G.6.2.6 The ctanh functions (p: 477)
  • G.7 Type-generic math <tgmath.h> (p: 480)

[編集] 関連項目

(C99)(C99)(C99)
複素数双曲線正弦を計算します
(関数) [edit]
(C99)(C99)(C99)
複素数双曲線余弦を計算します
(関数) [edit]
(C99)(C99)(C99)
複素数逆双曲線正接を計算します
(関数) [edit]
(C99)(C99)
双曲線正接を計算します
(関数) [edit]