std::pow(std::complex)
提供: cppreference.com
ヘッダ <complex> で定義
|
||
template< class T > complex<T> pow( const complex<T>& x, const complex<T>& y); |
(1) | |
template< class T > complex<T> pow( const complex<T>& x, const T& y); |
(2) | |
template< class T > complex<T> pow( const T& x, const complex<T>& y); |
(3) | |
template< class T, class U > complex</*Promoted*/> pow( const complex<T>& x, const complex<U>& y); |
(4) | (C++11以上) |
template< class T, class U > complex</*Promoted*/> pow( const complex<T>& x, const U& y); |
(5) | (C++11以上) |
template< class T, class U > complex</*Promoted*/> pow( const T& x, const complex<U>& y); |
(6) | (C++11以上) |
1-3) 第1引数を負の実軸に沿って分岐切断する、複素数
x
の複素数 y
乗を計算します。
4-6) すべての算術型に対する追加のオーバーロードが、以下のように提供されます。
|
(C++11以上) |
目次 |
[編集] 引数
x | - | 複素数の値としての底 |
y | - | 複素数の値としての指数 |
[編集] 戻り値
エラーが発生しなければ、複素数の冪 xy
が返されます。
エラーおよび特殊なケースは、この演算が std::exp(y*std::log(x)) として実装されているかのように処理されます。
std::pow(0, 0) の結果は処理系定義です。
[編集] 例
Run this code
#include <iostream> #include <complex> int main() { std::cout << std::fixed; std::complex<double> z(1, 2); std::cout << "(1,2)^2 = " << std::pow(z, 2) << '\n'; std::complex<double> z2(-1, 0); // square root of -1 std::cout << "-1^0.5 = " << std::pow(z2, 0.5) << '\n'; std::complex<double> z3(-1, -0.0); // other side of the cut std::cout << "(-1, -0)^0.5 = " << std::pow(z3, 0.5) << '\n'; std::complex<double> i(0, 1); // i^i = exp(-pi/2) std::cout << "i^i = " << std::pow(i, i) << '\n'; }
出力:
(1,2)^2 = (-3.000000,4.000000) -1^0.5 = (0.000000,1.000000) (-1, -0)^0.5 = (0.000000,-1.000000) i^i = (0.207880,0.000000)
[編集] 関連項目
右半平面の範囲の複素数の平方根 (関数テンプレート) | |
(C++11)(C++11) |
x の y 乗 (xy) を計算します (関数) |
2つの valarray または valarray と値に関数 std::pow を適用します (関数テンプレート) | |
cpow の C言語リファレンス
|