std:: atanh (std::complex)
From cppreference.net
|
定義先ヘッダ
<complex>
|
||
|
template
<
class
T
>
complex < T > atanh ( const complex < T > & z ) ; |
(C++11以降) | |
実軸に沿って区間 [−1; +1] の外側に分岐切断を持つ z の複素逆双曲線正接を計算します。
目次 |
パラメータ
| z | - | 複素数値 |
戻り値
エラーが発生しない場合、複素数の双曲線逆正接が返されます。その範囲は、実軸に沿って数学的に非有界な半帯域であり、虚軸に沿って区間 [−iπ/2; +iπ/2] 内にあります。
エラーハンドリングと特殊値
エラーの報告は math_errhandling に従って行われます。
IEEE浮動小数点演算がサポートされている実装の場合、
- std:: atanh ( std:: conj ( z ) ) == std:: conj ( std:: atanh ( z ) )
- std:: atanh ( - z ) == - std:: atanh ( z )
-
zが
(+0,+0)の場合、結果は(+0,+0)となる -
zが
(+0,NaN)の場合、結果は(+0,NaN)となる -
zが
(+1,+0)の場合、結果は(+∞,+0)となり、 FE_DIVBYZERO が発生する -
zが
(x,+∞)(任意の有限正数xに対して)の場合、結果は(+0,π/2)となる -
zが
(x,NaN)(任意の有限非ゼロxに対して)の場合、結果は(NaN,NaN)となり、 FE_INVALID が発生する可能性がある -
zが
(+∞,y)(任意の有限正数yに対して)の場合、結果は(+0,π/2)となる -
zが
(+∞,+∞)の場合、結果は(+0,π/2)となる -
zが
(+∞,NaN)の場合、結果は(+0,NaN)となる -
zが
(NaN,y)(任意の有限yに対して)の場合、結果は(NaN,NaN)となり、 FE_INVALID が発生する可能性がある -
zが
(NaN,+∞)の場合、結果は(±0,π/2)となる(実部の符号は未規定) -
zが
(NaN,NaN)の場合、結果は(NaN,NaN)となる
注記
C++標準ではこの関数を「複素数の双曲線逆正接」と命名していますが、双曲線関数の逆関数は面積関数です。それらの引数は弧ではなく双曲線扇形の面積です。正しい名称は「複素数の逆双曲線正接」、そしてより一般的でないものとして「複素数の面積双曲線正接」です。
逆双曲線正接関数は多価関数であり、複素平面上に分岐切断が必要です。分岐切断は慣例的に実軸上の線分 (-∞,-1] および [+1,+∞) に配置されます。
The mathematical definition of the principal value of the inverse hyperbolic tangent is atanh z =| ln(1+z) - ln(1-z) |
| 2 |
For any z , atanh(z) =
| atan(iz) |
| i |
例
このコードを実行
#include <complex> #include <iostream> int main() { std::cout << std::fixed; std::complex<double> z1(2.0, 0.0); std::cout << "atanh" << z1 << " = " << std::atanh(z1) << '\n'; std::complex<double> z2(2.0, -0.0); std::cout << "atanh" << z2 << " (the other side of the cut) = " << std::atanh(z2) << '\n'; // for any z, atanh(z) = atanh(iz) / i std::complex<double> z3(1.0, 2.0); std::complex<double> i(0.0, 1.0); std::cout << "atanh" << z3 << " = " << std::atanh(z3) << '\n' << "atan" << z3 * i << " / i = " << std::atan(z3 * i) / i << '\n'; }
出力:
atanh(2.000000,0.000000) = (0.549306,1.570796) atanh(2.000000,-0.000000) (the other side of the cut) = (0.549306,-1.570796) atanh(1.000000,2.000000) = (0.173287,1.178097) atan(-2.000000,1.000000) / i = (0.173287,1.178097)
関連項目
|
(C++11)
|
複素数の双曲線正弦の面積を計算する (
arsinh(z)
)
(関数テンプレート) |
|
(C++11)
|
複素数の双曲線余弦の面積を計算する (
arcosh(z)
)
(関数テンプレート) |
|
複素数の双曲線正接を計算する (
tanh(z)
)
(関数テンプレート) |
|
|
(C++11)
(C++11)
(C++11)
|
逆双曲線正接を計算する (
artanh(x)
)
(関数) |
|
Cドキュメント
for
catanh
|
|