std:: tanh (std::complex)
From cppreference.net
|
定义于头文件
<complex>
|
||
|
template
<
class
T
>
complex < T > tanh ( const complex < T > & z ) ; |
(C++11 起) | |
计算复数值 z 的复双曲正切函数。
目录 |
参数
| z | - | 复数值 |
返回值
若无错误发生,则返回 z 的复双曲正切值。
错误处理与特殊值
错误报告遵循 math_errhandling 规范。
如果实现支持 IEEE 浮点运算,
- std:: tanh ( std:: conj ( z ) ) == std:: conj ( std:: tanh ( z ) ) 。
- std:: tanh ( - z ) == - std:: tanh ( z ) 。
-
若
z
为
(+0,+0),则结果为(+0,+0)。 -
若
z
为
(x,+∞)(对于任意 [1] 有限值 x),则结果为(NaN,NaN)并引发 FE_INVALID 。 -
若
z
为
(x,NaN)(对于任意 [2] 有限值 x),则结果为(NaN,NaN)并可能引发 FE_INVALID 。 -
若
z
为
(+∞,y)(对于任意有限正数 y),则结果为(1,+0)。 -
若
z
为
(+∞,+∞),则结果为(1,±0)(虚部符号未指定)。 -
若
z
为
(+∞,NaN),则结果为(1,±0)(虚部符号未指定)。 -
若
z
为
(NaN,+0),则结果为(NaN,+0)。 -
若
z
为
(NaN,y)(对于任意非零 y),则结果为(NaN,NaN)并可能引发 FE_INVALID 。 -
若
z
为
(NaN,NaN),则结果为(NaN,NaN)。
-
↑
根据
C11 DR471
,此结论仅适用于非零 x。若
z为(0,∞),结果应为(0,NaN)。 -
↑
根据
C11 DR471
,此结论仅适用于非零 x。若
z为(0,NaN),结果应为(0,NaN)。
注释
Mathematical definition of hyperbolic tangent is tanh z =|
e
z
-e -z |
|
e
z
+e -z |
双曲正切是复平面上的解析函数且无分支切割。它关于虚部具有周期性,周期为πi,并在虚轴上的坐标 (0, π(1/2 + n)) 处存在一阶极点。然而常见的浮点数表示法均无法精确表示 π/2 ,因此不存在导致极点错误的参数值。
示例
运行此代码
#include <cmath> #include <complex> #include <iostream> int main() { std::cout << std::fixed; std::complex<double> z(1.0, 0.0); // 沿实轴表现如实双曲正切函数 std::cout << "tanh" << z << " = " << std::tanh(z) << " (tanh(1) = " << std::tanh(1) << ")\n"; std::complex<double> z2(0.0, 1.0); // 沿虚轴表现如正切函数 std::cout << "tanh" << z2 << " = " << std::tanh(z2) << " ( tan(1) = " << std::tan(1) << ")\n"; }
输出:
tanh(1.000000,0.000000) = (0.761594,0.000000) (tanh(1) = 0.761594) tanh(0.000000,1.000000) = (0.000000,1.557408) ( tan(1) = 1.557408)
参见
|
计算复数的双曲正弦值(
sinh(z)
)
(函数模板) |
|
|
计算复数的双曲余弦值(
cosh(z)
)
(函数模板) |
|
|
(C++11)
|
计算复数的反双曲正切值(
artanh(z)
)
(函数模板) |
|
(C++11)
(C++11)
|
计算双曲正切值(
tanh(x)
)
(函数) |
|
对 valarray 的每个元素应用函数
std::tanh
(函数模板) |
|
|
C 文档
关于
ctanh
|
|