std::tanh(std::complex)
来自cppreference.com
<tbody>
</tbody>
| 在标头 <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)。
注解
双曲正切的数学定义是
tanh z =| ez -e-z |
| ez +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); // 表现类似沿实轴的 tanh
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)) (函数) |
| 应用函数 std::tanh 到 valarray 的每个元素 (函数模板) | |
ctanh 的 C 文档
| |