std::pow(std::complex)
| ヘッダ <complex> で定義 |
||
| template< class T > std::complex<T> pow( const std::complex<T>& x, int y ); |
(1) | (C++11まで) |
| template< class T > std::complex<T> pow( const std::complex<T>& x, const std::complex<T>& y ); |
(2) | |
| template< class T > std::complex<T> pow( const std::complex<T>& x, const T& y ); |
(3) | |
| template< class T > std::complex<T> pow( const T& x, const std::complex<T>& y ); |
(4) | |
| 追加のオーバーロード (C++11以降) |
||
| ヘッダ <complex> で定義 |
||
| (A) | ||
template< class T1, class T2 > std::complex</* common-type */> |
(C++23まで) | |
| template< class T1, class T2 > std::complex<std::common_type_t<T1, T2>> |
(C++23から) | |
| (B) | ||
template< class T, class NonComplex > std::complex</* common-type */> |
(C++23まで) | |
| template< class T, class NonComplex > std::complex<std::common_type_t<T, NonComplex>> |
(C++23から) | |
| (C) | ||
template< class T, class NonComplex > std::complex</* common-type */> |
(C++23まで) | |
| template< class T, class NonComplex > std::complex<std::common_type_t<T, NonComplex>> |
(C++23から) | |
| (C++11以降) |
目次 |
[edit] パラメータ
| x | - | base |
| y | - | exponent |
[edit] 戻り値
가 반환됩니다.
[edit] 注記
오버로드 (1)은 C++98에서 std::pow의 추가 오버로드 (2)와 일치하도록 제공되었습니다. 해당 오버로드는 LWG 이슈 550의 해결로 제거되었으며, 오버로드 (1)은 LWG 이슈 844의 해결로 제거되었습니다.
추가 오버로드는 (A-C)와 정확히 동일하게 제공될 필요는 없습니다. 이러한 오버로드는 첫 번째 인수 base와 두 번째 인수 exponent에 대해 다음을 보장하기에 충분하기만 하면 됩니다.
|
만약 base 및/또는 exponent가 std::complex<T> 타입이라면
|
(C++23まで) |
|
한 인수가 std::complex<T1> 타입이고 다른 인수가 만약 std::common_type_t<T1, T2>가 잘 정의되지 않았다면, 프로그램은 정의되지 않습니다. |
(C++23から) |
[edit] 例
#include <complex> #include <iostream> int main() { std::cout << std::fixed; std::complex<double> z(1.0, 2.0); std::cout << "(1,2)^2 = " << std::pow(z, 2) << '\n'; std::complex<double> z2(-1.0, 0.0); // square root of -1 std::cout << "-1^0.5 = " << std::pow(z2, 0.5) << '\n'; std::complex<double> z3(-1.0, -0.0); // other side of the cut std::cout << "(-1,-0)^0.5 = " << std::pow(z3, 0.5) << '\n'; std::complex<double> i(0.0, 1.0); // 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)
[edit] 関連項目
| 複素数の平方根、右半平面の範囲 (関数テンプレート) | |
| (C++11)(C++11) |
数値を指定されたべき乗に累乗する (xy) (関数) |
| 2つのvalarray、またはvalarrayと値に関数std::powを適用する (function template) | |
| C 언어 문서 for cpow
| |