sqrt, sqrtf, sqrtl
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Défini dans l'en-tête
<math.h>
|
||
|
float
sqrtf
(
float
arg
)
;
|
(1) | (depuis C99) |
|
double
sqrt
(
double
arg
)
;
|
(2) | |
|
long
double
sqrtl
(
long
double
arg
)
;
|
(3) | (depuis C99) |
|
Défini dans l'en-tête
<tgmath.h>
|
||
|
#define sqrt( arg )
|
(4) | (depuis C99) |
sqrtl
est appelé. Sinon, si
arg
a un type entier ou le type
double
,
sqrt
est appelé. Sinon,
sqrtf
est appelé. Si
arg
est complexe ou imaginaire, alors la macro appelle la fonction complexe correspondante (
csqrtf
,
csqrt
,
csqrtl
).
Table des matières |
Paramètres
| arg | - | valeur en virgule flottante |
Valeur de retour
Si aucune erreur ne se produit, la racine carrée de arg ( \({\small \sqrt{arg} }\) √ arg ) 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 arg 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
sqrt
est requis par la norme IEEE pour ê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
fma
. D'autres fonctions, y compris
pow
, ne sont pas soumises à cette contrainte.
Exemple
#include <errno.h> #include <fenv.h> #include <math.h> #include <stdio.h> // #pragma STDC FENV_ACCESS ON int main(void) { // utilisation normale printf("sqrt(100) = %f\n", sqrt(100)); printf("sqrt(2) = %f\n", sqrt(2)); printf("golden ratio = %f\n", (1 + sqrt(5)) / 2); // valeurs spéciales printf("sqrt(-0) = %f\n", sqrt(-0.0)); // gestion d'erreur errno = 0; feclearexcept(FE_ALL_EXCEPT); printf("sqrt(-1.0) = %f\n", sqrt(-1)); if (errno == EDOM) perror(" errno == EDOM"); if (fetestexcept(FE_INVALID)) puts(" FE_INVALID was raised"); }
Sortie possible :
sqrt(100) = 10.000000
sqrt(2) = 1.414214
golden ratio = 1.618034
sqrt(-0) = -0.000000
sqrt(-1.0) = -nan
errno = EDOM: Numerical argument out of domain
FE_INVALID was raised
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.12.7.5 Les fonctions sqrt (p: TBD)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: TBD)
-
- F.10.4.5 Les fonctions sqrt (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.12.7.5 Les fonctions sqrt (p: TBD)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: TBD)
-
- F.10.4.5 Les fonctions sqrt (p: TBD)
- Norme C11 (ISO/IEC 9899:2011) :
-
- 7.12.7.5 Les fonctions sqrt (p: 249)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: 373-375)
-
- F.10.4.5 Les fonctions sqrt (p: 525)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.12.7.5 Les fonctions sqrt (p : 229-230)
-
- 7.22 Mathématiques génériques de type <tgmath.h> (p : 335-337)
-
- F.9.4.5 Les fonctions sqrt (p : 462)
- Norme C89/C90 (ISO/IEC 9899:1990) :
-
- 4.5.5.2 La fonction sqrt
Voir aussi
|
(C99)
(C99)
|
calcule un nombre élevé à la puissance donnée (
\(\small{x^y}\)
x
y
)
(fonction) |
|
(C99)
(C99)
(C99)
|
calcule la racine cubique (
\(\small{\sqrt[3]{x} }\)
3
√
x
)
(fonction) |
|
(C99)
(C99)
(C99)
|
calcule la racine carrée de la somme des carrés de deux nombres donnés (
\(\scriptsize{\sqrt{x^2+y^2} }\)
√
x
2
+y 2 ) (fonction) |
|
(C99)
(C99)
(C99)
|
calcule la racine carrée complexe
(fonction) |
|
documentation C++
pour
sqrt
|
|