名前空間
変種
操作

ctanhf, ctanh, ctanhl

From 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) 型汎用マクロ: 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 となります。
  • zx+∞i (任意の[1] 有限の x)の場合、結果は NaN+NaNi となり、FE_INVALID が発生します。
  • zx+NaN (任意の[2] 有限の x)の場合、結果は 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 を持ち、虚数直線上の1位の極は座標 (0, π(1/2 + n)) にあります。ただし、一般的な浮動小数点表現では π/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標準 (ISO/IEC 9899:2011)
  • 7.3.6.6 The ctanh functions (p: 194)
  • 7.25 型総称数学関数 <tgmath.h> (p: 373-375)
  • G.6.2.6 The ctanh functions (p: 542)
  • G.7 Type-generic math <tgmath.h> (p: 545)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.3.6.6 The ctanh functions (p: 176)
  • 7.22 型総称数学関数 <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)
複素双曲線サインを計算する
(関数) [編集]
(C99)(C99)(C99)
複素双曲線コサインを計算する
(関数) [編集]
(C99)(C99)(C99)
複素アーク双曲線タンジェントを計算する
(関数) [編集]
(C99)(C99)
双曲線タンジェントを計算する (tanh(x))
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)