fdim, fdimf, fdiml
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Défini dans l'en-tête
<math.h>
|
||
|
float
fdimf
(
float
x,
float
y
)
;
|
(1) | (depuis C99) |
|
double
fdim
(
double
x,
double
y
)
;
|
(2) | (depuis C99) |
|
long
double
fdiml
(
long
double
x,
long
double
y
)
;
|
(3) | (depuis C99) |
|
Défini dans l'en-tête
<tgmath.h>
|
||
|
#define fdim( x, y )
|
(4) | (depuis C99) |
fdiml
est appelé. Sinon, si un argument a un type entier ou le type
double
,
fdim
est appelé. Sinon,
fdimf
est appelé.
Table des matières |
Paramètres
| x, y | - | valeur en virgule flottante |
Valeur de retour
En cas de succès, retourne la différence positive entre x et y .
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, la valeur correcte (après arrondi) est retournée.
Gestion des erreurs
Les erreurs sont signalées comme spécifié dans Template:rllpt .
Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),
- Si l'un des arguments est NaN, NaN est retourné.
Notes
Équivalent à fmax ( x - y, 0 ) sauf pour les exigences de gestion des NaN.
Exemple
#include <errno.h> #include <fenv.h> #include <math.h> #include <stdio.h> // #pragma STDC FENV_ACCESS ON int main(void) { printf("fdim(4, 1) = %f, fdim(1, 4)=%f\n", fdim(4,1), fdim(1,4)); printf("fdim(4,-1) = %f, fdim(1,-4)=%f\n", fdim(4,-1), fdim(1,-4)); //error handling errno = 0; feclearexcept(FE_ALL_EXCEPT); printf("fdim(1e308, -1e308) = %f\n", fdim(1e308, -1e308)); if (errno == ERANGE) perror(" errno == ERANGE"); if (fetestexcept(FE_OVERFLOW)) puts(" FE_OVERFLOW raised"); }
Sortie possible :
fdim(4, 1) = 3.000000, fdim(1, 4)=0.000000
fdim(4,-1) = 5.000000, fdim(1,-4)=5.000000
fdim(1e308, -1e308) = inf
errno == ERANGE: Numerical result out of range
FE_OVERFLOW raised
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.12.12.1 Les fonctions fdim (p: TBD)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: TBD)
-
- F.10.9.1 Les fonctions fdim (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.12.12.1 Les fonctions fdim (p: 187-188)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: 272-273)
-
- F.10.9.1 Les fonctions fdim (p: 386)
- Norme C11 (ISO/CEI 9899:2011) :
-
- 7.12.12.1 Les fonctions fdim (p: 257)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: 373-375)
-
- F.10.9.1 Les fonctions fdim (p: 530)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.12.12.1 Les fonctions fdim (p: 238)
-
- 7.22 Mathématiques génériques de type <tgmath.h> (p: 335-337)
-
- F.9.9.1 Les fonctions fdim (p: 466)
Voir aussi
|
(C99)
|
calcule la valeur absolue d'une valeur entière (
\(\small{|x|}\)
|x|
)
(fonction) |
|
(C99)
(C99)
(C99)
|
détermine la plus grande de deux valeurs à virgule flottante
(fonction) |
|
Documentation C++
pour
fdim
|
|