std::exp(std::complex)
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <complex> で定義
|
||
template< class T > complex<T> exp( const complex<T>& z ); |
||
e を底とする z の指数、すなわち e の z 乗を計算します (e はネイピア数 2.7182818 です)。
引数
| z | - | 複素数の値 |
戻り値
エラーが発生しなければ、 e の z 乗、 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)) と等しくなります。
指数関数は複素平面上の整関数であり、分岐切断はありません。
例
Run this code
#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)
関連項目
| 負の実軸に沿って分岐切断する複素自然対数 (関数テンプレート) | |
(C++11)(C++11) |
e の x 乗 (ex) を計算します (関数) |
| valarray の各要素に関数 std::exp を適用します (関数テンプレート) | |
cexp の C言語リファレンス
| |