命名空间
变体
操作

std::tanh(std::complex)

来自 cppreference.com
< cpp‎ | numeric‎ | complex
 
 
 
 
在头文件 <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)
  1. 根据 C11 DR471,这仅适用于非零 x。如果 z(0,∞),则结果应为 (0,NaN)
  2. 根据 C11 DR471,这仅适用于非零 x。如果 z(0,NaN),则结果应为 (0,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); // behaves like real tanh along the real line
    std::cout << "tanh" << z << " = " << std::tanh(z)
              << " (tanh(1) = " << std::tanh(1) << ")\n";
 
    std::complex<double> z2(0.0, 1.0); // behaves like tangent along the imaginary line
    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))
(函数模板) [编辑]
计算复数的面积双曲正切 (artanh(z))
(函数模板) [编辑]
(C++11)(C++11)
计算双曲正切 (tanh(x))
(函数) [编辑]
将函数 std::tanh 应用于 valarray 的每个元素。
(函数模板) [编辑]
C 文档 for ctanh