Namespaces
Variants

ctanhf, ctanh, ctanhl

From cppreference.net
ヘッダー <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) 型総称マクロ: z の型が long double complex の場合、 ctanhl が呼び出される。 z の型が double complex の場合、 ctanh が呼び出される。 z の型が float complex の場合、 ctanhf が呼び出される。 z が実数または整数の場合、マクロは対応する実数関数( tanhf tanh tanhl )を呼び出す。 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 です
  • z x+∞i (任意の有限なxに対して [1] )の場合、結果は NaN+NaNi となり、 FE_INVALID が発生します
  • z x+NaN (任意の有限なxに対して [2] )の場合、結果は NaN+NaNi となり、 FE_INVALID が発生する可能性があります
  • z +∞+yi (任意の有限な正のyに対して)の場合、結果は 1+0i です
  • z +∞+∞i の場合、結果は 1±0i です(虚部の符号は未指定)
  • z +∞+NaNi の場合、結果は 1±0i です(虚部の符号は未指定)
  • z NaN+0i の場合、結果は NaN+0i です
  • z NaN+yi (任意の非ゼロのyに対して)の場合、結果は NaN+NaNi となり、 FE_INVALID が発生する可能性があります
  • z NaN+NaNi の場合、結果は NaN+NaNi です
  1. DR471 によれば、これは非ゼロのxに対してのみ成り立つ。 z 0+∞i の場合、結果は 0+NaNi となるべきである
  2. DR471 によれば、これは非ゼロのxに対してのみ成り立つ。 z 0+NaNi の場合、結果は 0+NaNi となるべきである

注記

Mathematical definition of hyperbolic tangent is tanh z =
e z
-e -z
e z
+e -z

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

#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
    double complex z = ctanh(1);  // 実軸に沿って実数tanhのように振る舞う
    printf("tanh(1+0i) = %f%+fi (tanh(1)=%f)\n", creal(z), cimag(z), tanh(1));
    double complex z2 = ctanh(I); // 虚軸に沿って正接関数のように振る舞う
    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規格 (ISO/IEC 9899:2011):
  • 7.3.6.6 ctanh関数群 (p: 194)
  • 7.25 総称数学 <tgmath.h> (p: 373-375)
  • G.6.2.6 ctanh関数群 (p: 542)
  • G.7 総称数学 <tgmath.h> (p: 545)
  • C99規格 (ISO/IEC 9899:1999):
  • 7.3.6.6 ctanh関数群 (p: 176)
  • 7.22 総称数学 <tgmath.h> (p: 335-337)
  • G.6.2.6 ctanh関数群 (p: 477)
  • G.7 総称数学 <tgmath.h> (p: 480)

関連項目

(C99) (C99) (C99)
複素双曲線正弦を計算する
(関数)
(C99) (C99) (C99)
複素双曲線余弦を計算する
(関数)
(C99) (C99) (C99)
複素逆双曲線正接を計算する
(関数)
(C99) (C99)
双曲線正接を計算する ( tanh(x) )
(関数)