std:: exp (std::complex)
|
定義先ヘッダ
<complex>
|
||
|
template
<
class
T
>
std:: complex < T > exp ( const std:: complex < T > & z ) ; |
||
z
の自然指数関数を計算します。つまり、
e
(オイラー数、
2.7182818
)の
z
乗です。
目次 |
パラメータ
| 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の場合、以下の式は同等の結果となります:
- std:: exp ( std:: complex < float > ( 0 , theta ) )
- std:: complex < float > ( cosf ( theta ) , sinf ( theta ) )
- std:: polar ( 1 . f , theta )
この場合、
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の各要素に適用する
(関数テンプレート) |
|
|
絶対値と偏角から複素数を構築する
(関数テンプレート) |
|
|
Cドキュメント
for
cexp
|
|