ctanhf, ctanh, ctanhl
From cppreference.net
|
ヘッダー
<complex.h>
で定義
|
||
| (1) | (C99以降) | |
| (2) | (C99以降) | |
| (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です
-
↑
DR471
によれば、これは非ゼロのxに対してのみ成り立つ。
zが0+∞iの場合、結果は0+NaNiとなるべきである -
↑
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)
)
(関数) |
|
C++ドキュメント
for
tanh
|
|