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 起) |
计算复数 x
的 y
次复数幂,首参数的分支切割沿负实轴。
4-6) 为所有算术类型提供额外重载,使得
|
(C++11 起) |
参数
x | - | 作为底数的复数值 |
y | - | 作为指数的复数值 |
返回值
若不出现错误,则返回复幂 xy
。
错误和特殊情况按照如同以 std::exp(y*std::log(x)) 实现运算一般处理,
std::pow(0, 0) 的结果是实现定义的。
示例
运行此代码
#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); // -1 的平方根 std::cout << "-1^0.5 = " << std::pow(z2, 0.5) << '\n'; std::complex<double> z3(-1, -0.0); // 切割的另一侧 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) |
求某数的给定次幂(xy) (函数) |
应用函数 std::pow 到二个 valarray 或一个 valarray 与一个值 (函数模板) |