Namespaces
Variants

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)
  1. 根据 C11 DR471 ,此结论仅适用于非零 x。若 z (0,∞) ,结果应为 (0,NaN)
  2. 根据 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)
(函数模板)
计算复数的反双曲正切值( artanh(z)
(函数模板)
(C++11) (C++11)
计算双曲正切值( tanh(x)
(函数)
对 valarray 的每个元素应用函数 std::tanh
(函数模板)
C 文档 关于 ctanh