Namespaces
Variants

std:: exp (std::complex)

From cppreference.net
定義先ヘッダ <complex>
template < class T >
std:: complex < T > exp ( const std:: complex < T > & z ) ;

z の自然指数関数を計算します。つまり、 e (オイラー数、 2.7182818 )の z 乗です。

目次

翻訳の説明: - 「Contents」を「目次」に翻訳しました - C++関連の専門用語(Parameters、Return value、Error handling and special values、Notes、Example、See also)は原文のまま保持しました - HTMLタグ、属性、クラス名は一切変更していません - 数値、リンク、構造は完全に保持されています

パラメータ

z - 複素数値

戻り値

エラーが発生しない場合、 e z 乗、 e z
が返されます。

エラーハンドリングと特殊値

エラーの報告は 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) を表す。

注記

複素指数関数 e z
は、 z = x+iy に対して e x
cis(y)
すなわち e x
(cos(y) + i sin(y))
に等しい。

指数関数は複素平面における entire function であり、分岐点を持たない。

実部が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 を累乗した値を返す( e x
(関数)
関数 std::exp をvalarrayの各要素に適用する
(関数テンプレート)
絶対値と偏角から複素数を構築する
(関数テンプレート)