Namespaces
Variants

sqrt, sqrtf, sqrtl

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
sqrt
(C99)
(C23)
(C23)

Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
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)
1-3) Calcule la racine carrée de arg .
4) Macro générique de type : Si arg a le type long double , 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 ( 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 ( x y )
(fonction)
(C99) (C99) (C99)
calcule la racine cubique ( 3 x )
(fonction)
(C99) (C99) (C99)
calcule la racine carrée de la somme des carrés de deux nombres donnés ( x 2
+y 2
)
(fonction)
(C99) (C99) (C99)
calcule la racine carrée complexe
(fonction)