Namespaces
Variants

std:: sqrt (std::complex)

From cppreference.net
Definiert im Header <complex>
template < class T >
std:: complex < T > sqrt ( const std:: complex < T > & z ) ;

Berechnet die Quadratwurzel der komplexen Zahl z mit einem Verzweigungsschnitt entlang der negativen reellen Achse.

Inhaltsverzeichnis

Parameter

z - komplexe Zahl, von der die Quadratwurzel gezogen wird

Rückgabewert

Wenn kein Fehler auftritt, 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).

Fehlerbehandlung und spezielle Werte

Fehler werden gemeldet konsistent mit math_errhandling .

Wenn die Implementierung IEEE-Gleitkommaarithmetik unterstützt,

  • Die Funktion ist auf dem Verzweigungsschnitt stetig 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 (+∞,+∞) selbst wenn x NaN ist
  • Wenn z (x,NaN) ist, ist das Ergebnis (NaN,NaN) (außer x ist ±∞) und FE_INVALID kann ausgelöst werden
  • Wenn z (-∞,y) ist, ist das Ergebnis (+0,+∞) für endliche positive y
  • Wenn z (+∞,y) ist, ist das Ergebnis (+∞,+0) für endliche positive 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)

Hinweise

Die Semantik dieser Funktion soll konsistent mit der C-Funktion csqrt sein.

Beispiel

#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)

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 2597 C++98 Spezifikation behandelt negative Null-Imaginärteile falsch fehlerhafte Anforderung entfernt

Siehe auch

Komplexe Potenz, ein oder beide Argumente können eine komplexe Zahl sein
(Funktionsschablone)
(C++11) (C++11)
berechnet Quadratwurzel ( x )
(Funktion)
wendet die Funktion std::sqrt auf jedes Element des Valarray an
(Funktionsschablone)