hypot, hypotf, hypotl
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Défini dans l'en-tête
<math.h>
|
||
|
float
hypotf
(
float
x,
float
y
)
;
|
(1) | (depuis C99) |
|
double
hypot
(
double
x,
double
y
)
;
|
(2) | (depuis C99) |
|
long
double
hypotl
(
long
double
x,
long
double
y
)
;
|
(3) | (depuis C99) |
|
Défini dans l'en-tête
<tgmath.h>
|
||
|
#define hypot( x, y )
|
(4) | (depuis C99) |
La valeur calculée par cette fonction est la longueur de l'hypoténuse d'un triangle rectangle avec des côtés de longueur
x
et
y
, ou la distance du point
(
x, y
)
par rapport à l'origine
(
0
,
0
)
, ou le module d'un nombre complexe
x+
i
y
.
Table des matières |
Paramètres
| x | - | valeur à virgule flottante |
| y | - | valeur à virgule flottante |
Valeur de retour
Si aucune erreur ne se produit, l'hypoténuse d'un triangle rectangle,
\(\scriptsize{\sqrt{x^2+y^2} }\)
√
x
2
+y
2
, est retournée.
Si une erreur de plage due à un dépassement de capacité se produit,
+HUGE_VAL
,
+HUGE_VALF
, ou
+HUGE_VALL
est renvoyé.
Si une erreur de plage due à un dépassement inférieur se produit, le résultat correct (après arrondi) est retourné.
Gestion des erreurs
Les erreurs sont signalées comme spécifié dans
math_errhandling
.
Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),
- hypot ( x, y ) , hypot ( y, x ) , et hypot ( x, - y ) sont équivalents
-
si l'un des arguments est ±0,
hypotest équivalent à fabs appelé avec l'argument non nul -
si l'un des arguments est ±∞,
hypotretourne +∞ même si l'autre argument est NaN - sinon, si l'un des arguments est NaN, NaN est retourné.
Notes
Les implémentations garantissent généralement une précision inférieure à 1 ulp ( unités de la dernière place ): GNU , BSD .
hypot ( x, y ) est équivalent à cabs ( x + I * y ) .
POSIX spécifie qu'un dépassement inférieur ne peut se produire que lorsque les deux arguments sont sous-normaux et que le résultat correct est également sous-normal (ceci interdit les implémentations naïves).
hypot ( INFINITY, NAN ) renvoie +∞, mais sqrt ( INFINITY * INFINITY + NAN * NAN ) renvoie NaN.
Exemple
#include <errno.h> #include <fenv.h> #include <float.h> #include <math.h> #include <stdio.h> // #pragma STDC FENV_ACCESS ON int main(void) { // utilisation typique printf("(1,1) cartesian is (%f,%f) polar\n", hypot(1,1), atan2(1, 1)); // valeurs spéciales printf("hypot(NAN,INFINITY) = %f\n", hypot(NAN, INFINITY)); // gestion des erreurs errno = 0; feclearexcept(FE_ALL_EXCEPT); printf("hypot(DBL_MAX,DBL_MAX) = %f\n", hypot(DBL_MAX, DBL_MAX)); if (errno == ERANGE) perror(" errno == ERANGE"); if (fetestexcept(FE_OVERFLOW)) puts(" FE_OVERFLOW raised"); }
Sortie possible :
(1,1) cartesian is (1.414214,0.785398) polar
hypot(NAN,INFINITY) = inf
hypot(DBL_MAX,DBL_MAX) = inf
errno == ERANGE: Numerical result out of range
FE_OVERFLOW raised
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.12.7.3 Les fonctions hypot (p: TBD)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: TBD)
-
- F.10.4.3 Les fonctions hypot (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.12.7.3 Les fonctions hypot (p: 181)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: 272-273)
-
- F.10.4.3 Les fonctions hypot (p: 382)
- Norme C11 (ISO/IEC 9899:2011) :
-
- 7.12.7.3 Les fonctions hypot (p: 248)
-
- 7.25 Mathématiques génériques <tgmath.h> (p: 373-375)
-
- F.10.4.3 Les fonctions hypot (p: 524)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.12.7.3 Les fonctions hypot (p: 229)
-
- 7.22 Mathématiques génériques de type <tgmath.h> (p: 335-337)
-
- F.9.4.3 Les fonctions hypot (p: 461)
Voir aussi
|
(C99)
(C99)
|
calcule un nombre élevé à la puissance donnée (
\(\small{x^y}\)
x
y
)
(fonction) |
|
(C99)
(C99)
|
calcule la racine carrée (
\(\small{\sqrt{x} }\)
√
x
)
(fonction) |
|
(C99)
(C99)
(C99)
|
calcule la racine cubique (
\(\small{\sqrt[3]{x} }\)
3
√
x
)
(fonction) |
|
(C99)
(C99)
(C99)
|
calcule le module d'un nombre complexe
(fonction) |
|
Documentation C++
pour
hypot
|
|