std::pow(std::complex)
| Common mathematical functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Mathematical special functions (C++17) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Mathematical constants (C++20) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Basic linear algebra algorithms (C++26) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Data-parallel types (SIMD) (C++26) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Floating-point environment (C++11) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Complex numbers | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Numeric array (valarray) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pseudo-random number generation | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Bit manipulation (C++20) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Saturation arithmetic (C++26) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Factor operations | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Interpolations | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Generic numeric operations | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| C-style checked integer arithmetic | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Defined in header <complex>
|
||
| template< class T > std::complex<T> pow( const std::complex<T>& x, int y ); |
(1) | (until 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) | |
| Additional overloads (since C++11) |
||
| Defined in header <complex>
|
||
| (A) | ||
template< class T1, class T2 > std::complex</* common-type */> |
(until C++23) | |
| template< class T1, class T2 > std::complex<std::common_type_t<T1, T2>> |
(since C++23) | |
| (B) | ||
template< class T, class NonComplex > std::complex</* common-type */> |
(until C++23) | |
| template< class T, class NonComplex > std::complex<std::common_type_t<T, NonComplex>> |
(since C++23) | |
| (C) | ||
template< class T, class NonComplex > std::complex</* common-type */> |
(until C++23) | |
| template< class T, class NonComplex > std::complex<std::common_type_t<T, NonComplex>> |
(since C++23) | |
| (since C++11) |
Contents |
[edit] Parameters
| x | - | base |
| y | - | exponent |
[edit] Return value
, is returned.
[edit] Notes
Overload (1) was provided in C++98 to match the extra overloads (2) of std::pow. Those overloads were removed by the resolution of LWG issue 844.
The additional overloads are not required to be provided exactly as (A-C). They only need to be sufficient to ensure that for their first argument base and second argument exponent:
|
If base and/or exponent has type std::complex<T>:
|
(until C++23) |
|
If one argument has type std::complex<T1> and the other argument has type If std::common_type_t<T1, T2> is not well-formed, then the program is ill-formed. |
(since C++23) |
[edit] Example
#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'; }
Output:
(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] See also
| complex square root in the range of the right half-plane (function template) [edit] | |
| (C++11)(C++11) |
raises a number to the given power (\(\small{x^y}\)xy) (function) [edit] |
| applies the function std::pow to two valarrays or a valarray and a value (function template) [edit] | |
| C documentation for cpow
| |