名稱空間
變體
操作

std::exp(std::complex)

來自 cppreference.com
< cpp‎ | 數值‎ | 複數
 
 
 
 
定義於標頭檔案 <complex>
template< class T >
std::complex<T> exp( const std::complex<T>& z );

計算 z 的底數為 e 的指數,即 e(尤拉數,2.7182818)的 z 次方。

目錄

[編輯] 引數

z - 複數型別的值

[編輯] 返回值

如果未發生錯誤,則返回 ez 次方,ez

[編輯] 錯誤處理和特殊值

錯誤報告與 math_errhandling 保持一致。

如果實現支援 IEEE 浮點算術,

  • std::exp(std::conj(z)) == std::conj(std::exp(z))
  • z(±0,+0),則結果為 (1,+0)
  • z(x,+∞)(對於任何有限 x),則結果為 (NaN,NaN) 並引發 FE_INVALID
  • z(x,NaN)(對於任何有限 x),則結果為 (NaN,NaN) 並可能引發 FE_INVALID
  • z(+∞,+0),則結果為 (+∞,+0)
  • z(-∞,y)(對於任何有限 y),則結果為 +0cis(y)
  • z(+∞,y)(對於任何有限非零 y),則結果為 +∞cis(y)
  • z(-∞,+∞),則結果為 (±0,±0)(符號未指定)
  • z(+∞,+∞),則結果為 (±∞,NaN) 並引發 FE_INVALID(實部符號未指定)
  • z(-∞,NaN),則結果為 (±0,±0)(符號未指定)
  • z(+∞,NaN),則結果為 (±∞,NaN)(實部符號未指定)
  • z(NaN,+0),則結果是 (NaN,+0)
  • z(NaN,y)(對於任何非零 y),則結果為 (NaN,NaN) 並可能引發 FE_INVALID
  • z(NaN,NaN),則結果為 (NaN,NaN)

其中 cis(y)cos(y) + i sin(y)

[編輯] 注意

復指數函式 ez
對於 z = x+iy 等於 ex
cis(y)
,即 ex
(cos(y) + i sin(y))

指數函式在複平面上是“整函式”,沒有分支割線。

當實部為 0 時,以下結果等效:

在這種情況下,exp 可能慢約 4.5 倍。當引數的實部為字面量 0 時,應使用其他形式而不是呼叫 exp。然而,透過執行時檢查 z.real() == 0 來避免 exp 沒有好處。

[編輯] 示例

#include <cmath>
#include <complex>
#include <iostream>
 
int main()
{
   const double pi = std::acos(-1.0);
   const std::complex<double> i(0.0, 1.0);
 
   std::cout << std::fixed << " exp(i * pi) = " << std::exp(i * pi) << '\n';
}

輸出

exp(i * pi) = (-1.000000,0.000000)

[編輯] 參見

具有沿負實軸分支割線的複數自然對數
(函式模板) [編輯]
(C++11)(C++11)
返回 e 的給定冪(ex
(函式) [編輯]
將函式 std::exp 應用於 valarray 的每個元素
(函式模板) [編輯]
從模和相角構造一個複數
(函式模板) [編輯]
C 文件 用於 cexp