std::sqrt(std::complex)
Von cppreference.com
| Definiert in der Header-Datei <complex> |
||
| template< class T > std::complex<T> sqrt( const std::complex<T>& z ); |
||
Berechnet die Quadratwurzel der komplexen Zahl z mit einem Schnitt entlang der negativen reellen Achse.
Inhalt |
[bearbeiten] Parameter
| z | - | komplexe Zahl, von der die Quadratwurzel gezogen werden soll |
[bearbeiten] Rückgabewert
Wenn keine Fehler auftreten, wird die Quadratwurzel von z zurückgegeben, im Bereich der rechten Halbebene, einschließlich der imaginären Achse ([0; +∞) entlang der reellen Achse und (−∞; +∞) entlang der imaginären Achse).
[bearbeiten] Fehlerbehandlung und spezielle Werte
Fehler werden konsistent mit math_errhandling gemeldet.
Wenn die Implementierung IEEE-Gleitkomma-Arithmetik unterstützt,
- Die Funktion ist kontinuierlich auf dem Schnitt, unter Berücksichtigung des Vorzeichens des Imaginärteils
- std::sqrt(std::conj(z)) == std::conj(std::sqrt(z))
- Wenn z
(±0,+0)ist, ist das Ergebnis(+0,+0) - Wenn z
(x,+∞)ist, ist das Ergebnis(+∞,+∞), auch wenn x NaN ist - Wenn z
(x,NaN)ist, ist das Ergebnis(NaN,NaN)(es sei denn, x ist ±∞) und FE_INVALID kann ausgelöst werden - Wenn z
(-∞,y)ist, ist das Ergebnis(+0,+∞)für endliches positives y - Wenn z
(+∞,y)ist, ist das Ergebnis(+∞,+0)für endliches positives y - Wenn z
(-∞,NaN)ist, ist das Ergebnis(NaN,∞)(Vorzeichen des Imaginärteils nicht spezifiziert) - Wenn z
(+∞,NaN)ist, ist das Ergebnis(+∞,NaN) - Wenn z
(NaN,y)ist, ist das Ergebnis(NaN,NaN)und FE_INVALID kann ausgelöst werden - Wenn z
(NaN,NaN)ist, ist das Ergebnis(NaN,NaN)
[bearbeiten] Hinweise
Die Semantik dieser Funktion ist dazu bestimmt, mit der C-Funktion csqrt konsistent zu sein.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <complex> #include <iostream> int main() { std::cout << "Square root of -4 is " << std::sqrt(std::complex<double>(-4.0, 0.0)) << '\n' << "Square root of (-4,-0) is " << std::sqrt(std::complex<double>(-4.0, -0.0)) << " (the other side of the cut)\n"; }
Ausgabe
Square root of -4 is (0,2) Square root of (-4,-0) is (0,-2) (the other side of the cut)
[bearbeiten] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 2597 | C++98 | Spezifikation handhabt signierte Null-Imaginärteile fehlerhaft | fehlerhafte Anforderung entfernt |
[bearbeiten] Siehe auch
| komplexe Potenz, ein oder beide Argumente können komplexe Zahlen sein (function template) | |
| (C++11)(C++11) |
berechnet die Quadratwurzel (√x) (Funktion) |
| wendet die Funktion std::sqrt auf jedes Element des Valarrays an (function template) | |
| C-Dokumentation für csqrt
| |