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(conststd::complex<T>& x,int y); | (1) | (until C++11) |
template<class T> std::complex<T> pow(conststd::complex<T>& x,conststd::complex<T>& y); | (2) | |
template<class T> std::complex<T> pow(conststd::complex<T>& x,const T& y); | (3) | |
template<class T> std::complex<T> pow(const T& x,conststd::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 |
x | - | base |
y | - | exponent |
Overload(1) was provided in C++98 to match the extra overloads(2) ofstd::pow. Those overloads were removed by the resolution ofLWG issue 550, and overload(1) was removed by the resolution ofLWG 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 argumentbase and second argumentexponent:
Ifbase and/orexponent has typestd::complex<T>:
| (until C++23) |
If one argument has typestd::complex<T1> and the other argument has type Ifstd::common_type_t<T1, T2> is not well-formed, then the program is ill-formed. | (since 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 -1std::cout<<"-1^0.5 = "<<std::pow(z2,0.5)<<'\n'; std::complex<double> z3(-1.0,-0.0);// other side of the cutstd::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)
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 functionstd::pow to two valarrays or a valarray and a value (function template)[edit] | |
C documentation forcpow |