std::pow(std::complex)
| Definiert in der Header-Datei <complex> |
||
| template< class T > std::complex<T> pow( const std::complex<T>& x, int y ); |
(1) | (bis 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) | |
| Zusätzliche Überladungen (seit C++11) |
||
| Definiert in der Header-Datei <complex> |
||
| (A) | ||
template< class T1, class T2 > std::complex</* gemeinsamer Typ */> |
(bis C++23) | |
| template< class T1, class T2 > std::complex<std::common_type_t<T1, T2>> |
(seit C++23) | |
| (B) | ||
template< class T, class NonComplex > std::complex</* gemeinsamer Typ */> |
(bis C++23) | |
| template< class T, class NonComplex > std::complex<std::common_type_t<T, NonComplex>> |
(seit C++23) | |
| (C) | ||
template< class T, class NonComplex > std::complex</* gemeinsamer Typ */> |
(bis C++23) | |
| template< class T, class NonComplex > std::complex<std::common_type_t<T, NonComplex>> |
(seit C++23) | |
|
A-C) Zusätzliche Überladungen werden bereitgestellt.
NonComplex ist keine Spezialisierung von std::complex. |
(seit C++11) |
Inhalt |
[bearbeiten] Parameter
| x | - | base |
| y | - | exponent |
[bearbeiten] Rückgabewert
zurückgegeben.
[bearbeiten] Anmerkungen
Überladung (1) wurde in C++98 bereitgestellt, um den zusätzlichen Überladungen (2) von std::pow zu entsprechen. Diese Überladungen wurden durch die Auflösung von LWG issue 550 entfernt, und Überladung (1) wurde durch die Auflösung von LWG issue 844 entfernt.
Die zusätzlichen Überladungen müssen nicht exakt als (A-C) bereitgestellt werden. Sie müssen nur ausreichend sein, um sicherzustellen, dass für ihr erstes Argument base und zweites Argument exponent
|
Wenn base und/oder exponent den Typ std::complex<T> haben
|
(bis C++23) |
|
Wenn ein Argument vom Typ std::complex<T1> und das andere Argument vom Typ Wenn std::common_type_t<T1, T2> nicht wohlgeformt ist, ist das Programm fehlerhaft. |
(seit C++23) |
[bearbeiten] Beispiel
#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'; }
Ausgabe
(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)
[bearbeiten] Siehe auch
| komplexe Quadratwurzel im Bereich der rechten Halbebene (function template) | |
| (C++11)(C++11) |
erhöht eine Zahl zur gegebenen Potenz (xy) (Funktion) |
| wendet die Funktion std::pow auf zwei Valarrays oder ein Valarray und einen Wert an (function template) | |
| C-Dokumentation für cpow
| |