Namespaces
Variants

std:: sqrt (std::complex)

From cppreference.net
Défini dans l'en-tête <complex>
template < class T >
std:: complex < T > sqrt ( const std:: complex < T > & z ) ;

Calcule la racine carrée du nombre complexe z avec une coupure de branche le long de l'axe réel négatif.

Table des matières

Paramètres

z - nombre complexe dont on prend la racine carrée

Valeur de retour

Si aucune erreur ne se produit, retourne la racine carrée de z , dans le domaine du demi-plan droit, incluant l'axe imaginaire ( [0; +∞) sur l'axe réel et (−∞; +∞) sur l'axe imaginaire).

Gestion des erreurs et valeurs spéciales

Les erreurs sont signalées conformément à math_errhandling .

Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE,

  • La fonction est continue sur la coupure de branche en tenant compte du signe de la partie imaginaire
  • std:: sqrt ( std:: conj ( z ) ) == std:: conj ( std:: sqrt ( z ) )
  • Si z est (±0,+0) , le résultat est (+0,+0)
  • Si z est (x,+∞) , le résultat est (+∞,+∞) même si x est NaN
  • Si z est (x,NaN) , le résultat est (NaN,NaN) (sauf si x est ±∞) et FE_INVALID peut être déclenché
  • Si z est (-∞,y) , le résultat est (+0,+∞) pour y positif fini
  • Si z est (+∞,y) , le résultat est (+∞,+0) pour y positif fini
  • Si z est (-∞,NaN) , le résultat est (NaN,∞) (signe de la partie imaginaire non spécifié)
  • Si z est (+∞,NaN) , le résultat est (+∞,NaN)
  • Si z est (NaN,y) , le résultat est (NaN,NaN) et FE_INVALID peut être déclenché
  • Si z est (NaN,NaN) , le résultat est (NaN,NaN)

Notes

La sémantique de cette fonction est conçue pour être cohérente avec la fonction C csqrt .

Exemple

#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";
}

Sortie :

Square root of -4 is (0,2)
Square root of (-4,-0) is (0,-2) (the other side of the cut)

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR S'applique à Comportement tel que publié Comportement correct
LWG 2597 C++98 la spécification gère mal les parties imaginaires de zéro signé exigence erronée supprimée

Voir aussi

puissance complexe, un ou les deux arguments peuvent être un nombre complexe
(modèle de fonction)
(C++11) (C++11)
calcule la racine carrée ( x )
(fonction)
applique la fonction std::sqrt à chaque élément du valarray
(modèle de fonction)