名稱空間
變體
操作

std::tanh(std::complex)

來自 cppreference.com
< cpp‎ | 數值‎ | 複數
 
 
 
 
定義於標頭檔案 <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 文件 用於 ctanh