std::pow(std::complex)
來自 cppreference.com
定義於標頭檔案 <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 起) | |
1-4) 計算複數 x 的複數次冪 y,其中第一個引數沿負實軸有分支割。非複數引數被視為虛部為正零的複數。
(C++11 起) |
目錄 |
[編輯] 引數
x | - | 底數 |
y | - | 指數 |
[編輯] 返回值
1-4) 如果沒有發生錯誤,則返回複數冪 xy
。
。
std::pow(0, 0) 的結果是實現定義的。
A-C) 同 (2-4)。
[編輯] 註解
過載 (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 起) |
[編輯] 示例
執行此程式碼
#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)
[編輯] 參閱
右半平面範圍內的復平方根 (函式模板) | |
(C++11)(C++11) |
將數字提升到給定冪(xy) (函式) |
將函式 std::pow 應用於兩個 valarray 或一個 valarray 和一個值 (函式模板) | |
C 文件 關於 cpow
|