名前空間
変種
操作

std::exp(std::complex)

提供: cppreference.com
< cpp‎ | numeric‎ | complex
 
 
 
 
ヘッダ <complex> で定義
template< class T >
complex<T> exp( const complex<T>& z );

e を底とする z の指数、すなわち ez 乗を計算します (e はネイピア数 2.7182818 です)。

目次

[編集] 引数

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) (ただし x は任意の有限な値) であれば、結果は +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) です。

[編集] ノート

z = x+iy に対する複素指数関数 ez
は、 ex
cis(y)
すなわち ex
(cos(y) + i sin(y))
と等しくなります。

指数関数は複素平面上の整関数であり、分岐切断はありません。

[編集]

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

出力:

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

[編集] 関連項目

負の実軸に沿って分岐切断する複素自然対数
(関数テンプレート) [edit]
(C++11)(C++11)
ex 乗 (ex) を計算します
(関数) [edit]
valarray の各要素に関数 std::exp を適用します
(関数テンプレート) [edit]