std:: sqrt, std:: sqrtf, std:: sqrtl
|
Défini dans l'en-tête
<cmath>
|
||
| (1) | ||
|
float
sqrt
(
float
num
)
;
double
sqrt
(
double
num
)
;
|
(jusqu'à C++23) | |
|
/*floating-point-type*/
sqrt ( /*floating-point-type*/ num ) ; |
(depuis C++23)
(constexpr depuis C++26) |
|
|
float
sqrtf
(
float
num
)
;
|
(2) |
(depuis C++11)
(constexpr depuis C++26) |
|
long
double
sqrtl
(
long
double
num
)
;
|
(3) |
(depuis C++11)
(constexpr depuis C++26) |
|
Surcharge SIMD
(depuis C++26)
|
||
|
Défini dans l'en-tête
<simd>
|
||
|
template
<
/*math-floating-point*/
V
>
constexpr
/*deduced-simd-t*/
<
V
>
|
(S) | (depuis C++26) |
|
Surcharges supplémentaires
(depuis C++11)
|
||
|
Défini dans l'en-tête
<cmath>
|
||
|
template
<
class
Integer
>
double sqrt ( Integer num ) ; |
(A) | (constexpr depuis C++26) |
std::sqrt
pour tous les types à virgule flottante non qualifiés cv comme type du paramètre.
(depuis C++23)
|
S)
La surcharge SIMD effectue un calcul
std::sqrt
élément par élément sur
v_num
.
|
(depuis C++26) |
|
A)
Des surcharges supplémentaires sont fournies pour tous les types entiers, qui sont traités comme
double
.
|
(depuis C++11) |
Table des matières |
Paramètres
| num | - | valeur à virgule flottante ou entière |
Valeur de retour
Si aucune erreur ne se produit, la racine carrée de num ( √ num ) est retournée.
Si une erreur de domaine se produit, une valeur définie par l'implémentation est retournée (NaN là où supporté).
Si une erreur de plage se produit en raison d'un dépassement inférieur, le résultat correct (après arrondi) est retourné.
Gestion des erreurs
Les erreurs sont signalées comme spécifié dans math_errhandling .
Une erreur de domaine se produit si num est inférieur à zéro.
Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),
- Si l'argument est inférieur à -0, FE_INVALID est déclenché et NaN est retourné.
- Si l'argument est +∞ ou ±0, il est retourné, non modifié.
- Si l'argument est NaN, NaN est retourné.
Notes
std::sqrt
est requis par la norme IEEE d'être correctement arrondi à partir du résultat infiniment précis. En particulier, le résultat exact est produit s'il peut être représenté dans le type à virgule flottante. Les seules autres opérations qui exigent cela sont les
opérateurs arithmétiques
et la fonction
std::fma
. D'autres fonctions, y compris
std::pow
, ne sont pas aussi contraintes.
Les surcharges supplémentaires ne sont pas requises d'être fournies exactement comme (A) . Elles doivent seulement être suffisantes pour garantir que pour leur argument num de type entier, std :: sqrt ( num ) ait le même effet que std :: sqrt ( static_cast < double > ( num ) ) .
Exemple
#include <cerrno> #include <cfenv> #include <cmath> #include <cstring> #include <iostream> // #pragma STDC FENV_ACCESS ON int main() { // utilisation normale std::cout << "sqrt(100) = " << std::sqrt(100) << '\n' << "sqrt(2) = " << std::sqrt(2) << '\n' << "golden ratio = " << (1 + std::sqrt(5)) / 2 << '\n'; // valeurs spéciales std::cout << "sqrt(-0) = " << std::sqrt(-0.0) << '\n'; // gestion des erreurs errno = 0; std::feclearexcept(FE_ALL_EXCEPT); std::cout << "sqrt(-1.0) = " << std::sqrt(-1) << '\n'; if (errno == EDOM) std::cout << " errno = EDOM " << std::strerror(errno) << '\n'; if (std::fetestexcept(FE_INVALID)) std::cout << " FE_INVALID levée\n"; }
Sortie possible :
sqrt(100) = 10
sqrt(2) = 1.41421
golden ratio = 1.61803
sqrt(-0) = -0
sqrt(-1.0) = -nan
errno = EDOM Numerical argument out of domain
FE_INVALID raised
Voir aussi
|
(C++11)
(C++11)
|
élève un nombre à la puissance donnée (
x
y
)
(fonction) |
|
(C++11)
(C++11)
(C++11)
|
calcule la racine cubique (
3
√
x
)
(fonction) |
|
(C++11)
(C++11)
(C++11)
|
calcule l'hypoténuse
√
x
2
+y 2 et √ x 2 +y 2 +z 2 (depuis C++17) (fonction) |
|
racine carrée complexe dans le demi-plan droit
(modèle de fonction) |
|
|
applique la fonction
std::sqrt
à chaque élément du valarray
(modèle de fonction) |
|
|
Documentation C
pour
sqrt
|
|