Floating-point extensions part 1: binary floating-point arithmetic
Extensions en virgule flottante pour C - Partie 1 : Arithmétique binaire en virgule flottante, ISO/CEI TS 18661-1:2014, définit les nouveaux composants suivants pour la bibliothèque standard du C, comme recommandé par ISO/CEI/IEEE 60559:2011 (la révision actuelle de IEEE-754)
|
__STDC_IEC_60559_BFP__
|
constante entière de type
long
et de valeur
201ymmL
, remplace
__STDC_IEC_559__
(constante macro) |
|
__STDC_IEC_60559_COMPLEX__
|
constante entière de type
long
et de valeur
201ymmL
, remplace
__STDC_IEC_559_COMPLEX__
(constante macro) |
|
Défini dans l'en-tête
<limits.h>
|
|
|
CHAR_WIDTH SCHAR_WIDTH UCHAR_WIDTH
SHRT_WIDTH USHRT_WIDTH
INT_WIDTH UINT_WIDTH
LONG_WIDTH ULONG_WIDTH
LLONG_WIDTH ULLONG_WIDTH
(FP Ext 1 TS)
|
largeur, en bits, du type correspondant
(constante macro) |
|
Défini dans l'en-tête
<float.h>
|
|
|
(FP Ext 1 TS)
|
les conversions entre tous les types de nombres à virgule flottante binaires pris en charge et les séquences de caractères avec au plus CR_DECIMAL_DIG chiffres décimaux significatifs sont correctement arrondies (ceci est au moins DECIMAL_DIG + 3)
(constante macro) |
|
Défini dans l'en-tête
<fenv.h>
|
|
|
femode_t
(FP Ext 1 TS)
|
collection des modes de contrôle en virgule flottante dynamiques pris en charge par l'implémentation, incluant le mode dynamique de direction d'arrondi
(typedef) |
|
FE_DFL_MODE
(FP Ext 1 TS)
|
pointeur vers le femode_t par défaut
(constante macro) |
|
FE_SNANS_ALWAYS_SIGNAL
(FP Ext 1 TS)
|
défini (comme constante entière 1) si les arguments sNaN entraînent que les fonctions qui suppriment les qNaNs, comme
hypot
ou
fmax
, lèvent FE_INVALID et retournent un qNaN
(constante macro) |
|
(FP Ext 1 TS)
|
définit les indicateurs d'exception en virgule flottante spécifiés sans provoquer d'effets secondaires que leur déclenchement causerait
(fonction) |
|
(FP Ext 1 TS)
|
teste si des indicateurs donnés sont dans une représentation sauvegardée des indicateurs d'exception en virgule flottante
(fonction) |
|
(FP Ext 1 TS)
|
obtient et définit collectivement tous les modes de contrôle dynamique en virgule flottante de l'implémentation
(fonction) |
|
Défini dans l'en-tête
<stdint.h>
|
|
|
INTn_WIDTH UINTn_WIDTH
INT_LEASTn_WIDTH UINT_LEASTn_WIDTH
INT_FASTn_WIDTH UINT_FASTn_WIDTH
INTPTR_WIDTH UINTPTR_WIDTH
INTMAX_WIDTH UINTMAX_WIDTH
PTRDIFF_WIDTH
SIG_ATOMIC_WIDTH
SIZE_WIDTH
WCHAR_WIDTH WINT_WIDTH
(FP Ext 1 TS)
|
largeur, en bits, du type correspondant
(constante macro) |
|
Défini dans l'en-tête
<stdlib.h>
|
|
|
(FP Ext 1 TS)
|
convertit un seul nombre à virgule flottante en chaîne de caractères en utilisant le format snprintf spécifié
(fonction) |
|
Défini dans l'en-tête
<math.h>
|
|
|
FP_INT_UPWARD
FP_INT_DOWNWARD
FP_INT_TOWARDZERO
FP_INT_TONEARESTFROMZERO
FP_INT_TONEAREST
(FP Ext 1 TS)
|
direction d'arrondi pour les fonctions ceil, floor, trunc, round et roundeven, adaptée à une utilisation avec la famille de fonctions fromfp
(constante macro) |
|
FP_LLOGB0
(FP Ext 1 TS)
|
valeur retournée par
llogb
si l'argument est zéro
(constante macro) |
|
FP_LLOGBNAN
(FP Ext 1 TS)
|
valeur retournée par
llogb
si l'argument est NaN
(constante macro) |
|
(FP Ext 1 TS)
|
représente un NaN signalant respectivement pour float, double, long double
(constante macro) |
|
FP_FAST_FADD FP_FAST_FADDL FP_FAST_DADDL
FP_FAST_FSUB FP_FAST_FSUBL FP_FAST_DSUBL
FP_FAST_FMUL FP_FAST_FMULL FP_FAST_DMULL
FP_FAST_FDIV FP_FAST_FDIVL FP_FAST_DDIVL
FP_FAST_FFMA FP_FAST_FFMAL FP_FAST_DFMAL
FP_FAST_FSQRT FP_FAST_FSQRTL FP_FAST_DSQRTL
(FP Ext 1 TS)
|
si défini, indique que la fonction correspondante s'exécute plus rapidement que la fonction équivalente dans un type plus grand suivie d'un cast vers le type cible
(constante macro) |
|
iseqsig
(FP Ext 1 TS)
|
(macro fonction) |
|
iscanonical
(FP Ext 1 TS)
|
teste si la valeur en virgule flottante est canonique
(macro de fonction) |
|
issignaling
(FP Ext 1 TS)
|
teste si la valeur en virgule flottante est un NaN signalétique
(macro de fonction) |
|
issubnormal
(FP Ext 1 TS)
|
teste si la valeur en virgule flottante est sous-normale
(macro de fonction) |
|
iszero
(FP Ext 1 TS)
|
teste si la valeur en virgule flottante est un zéro (positif, négatif, non signé)
(macro de fonction) |
|
(FP Ext 1 TS)
|
arrondir à un entier signé en utilisant la direction d'arrondi spécifiée
(fonction) |
|
(FP Ext 1 TS)
|
arrondir à l'entier non signé en utilisant la direction d'arrondi spécifiée
(fonction) |
|
(FP Ext 1 TS)
|
arrondir à l'entier signé en utilisant la direction d'arrondi spécifiée, en signalant l'inexactitude
(fonction) |
|
(FP Ext 1 TS)
|
arrondir à l'entier non signé en utilisant la direction d'arrondi spécifiée, en signalant l'inexactitude
(fonction) |
|
(FP Ext 1 TS)
|
arrondit au plus proche, les cas médians vers le pair
(fonction) |
|
(FP Ext 1 TS)
|
équivalent à
logb
sauf que le type de retour est
long
(fonction) |
|
(FP Ext 1 TS)
|
renvoie la valeur de leur argument de magnitude maximale
(fonction) |
|
(FP Ext 1 TS)
|
renvoie la valeur de leur argument de magnitude minimale
(fonction) |
|
(FP Ext 1 TS)
|
retourne la prochaine valeur représentable supérieure en virgule flottante
(fonction) |
|
(FP Ext 1 TS)
|
retourne la prochaine valeur représentable plus petite en virgule flottante
(fonction) |
|
(FP Ext 1 TS)
|
calcule x+y comme si en précision infinie et arrondi une fois vers le type cible
(fonction) |
|
(FP Ext 1 TS)
|
calcule x-y comme si avec une précision infinie et arrondi une fois vers le type cible
(fonction) |
|
(FP Ext 1 TS)
|
calcule x*y comme si en précision infinie et arrondi une fois au type cible
(fonction) |
|
(FP Ext 1 TS)
|
calcule x/y comme si avec une précision infinie et arrondi une fois vers le type cible
(fonction) |
|
(FP Ext 1 TS)
|
calcule la même chose que
fma
comme si avec une précision infinie et arrondi une fois vers le type cible
(fonction) |
|
(FP Ext 1 TS)
|
calcule la même chose que
sqrt
comme si avec une précision infinie et arrondie une fois vers le type cible
(fonction) |
|
(FP Ext 1 TS)
|
ordonne deux valeurs à virgule flottante en utilisant la relation d'ordre total ISO 60559
(fonction) |
|
(FP Ext 1 TS)
|
ordonne les magnitudes de deux valeurs à virgule flottante en utilisant la relation d'ordre total ISO 60559
(fonction) |
|
(FP Ext 1 TS)
|
obtient l'encodage binaire canonique ISO 60559 de la valeur en virgule flottante donnée
(fonction) |
|
(FP Ext 1 TS)
|
extrait la charge utile de la valeur NaN donnée
(fonction) |
|
(FP Ext 1 TS)
|
crée un NaN silencieux avec la charge utile spécifiée
(fonction) |
|
(FP Ext 1 TS)
|
crée un NaN signalétique avec la charge utile spécifiée
(fonction) |
|
Défini dans l'en-tête
<tgmath.h>
|
|
|
roundeven
(FP Ext 1 TS)
|
surcharge générique de
roundeven
(fonction) |
|
llogb
(FP Ext 1 TS)
|
surcharge générique de
llogb
(fonction) |
|
fmaxmag
(FP Ext 1 TS)
|
surcharge générique de
fmaxmag
(fonction) |
|
fminmag
(FP Ext 1 TS)
|
surcharge générique de
fminmag
(fonction) |
|
nextup
(FP Ext 1 TS)
|
surcharge générique de
nextup
(fonction) |
|
nextdown
(FP Ext 1 TS)
|
surcharge générique de
nextdown
(fonction) |
|
fromfp
(FP Ext 1 TS)
|
surcharge générique de
fromfp
(fonction) |
|
ufromfp
(FP Ext 1 TS)
|
surcharge générique de
ufromfp
(fonction) |
|
fromfpx
(FP Ext 1 TS)
|
surcharge générique de
fromfpx
(fonction) |
|
ufromfpx
(FP Ext 1 TS)
|
surcharge générique de
ufromfpx
(fonction) |
|
nextdown
(FP Ext 1 TS)
|
surcharge générique de
nextdown
(fonction) |
|
totalorder
(FP Ext 1 TS)
|
surcharge générique de
totalorder
(fonction) |
|
totalordermag
(FP Ext 1 TS)
|
surcharge générique de
totalordermag
(fonction) |
|
fadd
(FP Ext 1 TS)
|
surcharge générique de
fadd
(fonction) |
|
dadd
(FP Ext 1 TS)
|
surcharge générique de
dadd
(fonction) |
|
fsub
(FP Ext 1 TS)
|
surcharge générique de
fsub
(fonction) |
|
dsub
(FP Ext 1 TS)
|
surcharge générique de
dsub
(fonction) |
|
fmul
(FP Ext 1 TS)
|
surcharge générique de
fmul
(fonction) |
|
dmul
(FP Ext 1 TS)
|
surcharge générique de
dmul
(fonction) |
|
fdiv
(FP Ext 1 TS)
|
surcharge générique de
fdiv
(fonction) |
|
ddiv
(FP Ext 1 TS)
|
surcharge générique de
ddiv
(fonction) |
|
ffma
(FP Ext 1 TS)
|
surcharge générique de
ffma
(fonction) |
|
dfma
(FP Ext 1 TS)
|
surcharge générique de
dfma
(fonction) |
|
fsqrt
(FP Ext 1 TS)
|
surcharge générique de
fsqrt
(fonction) |
|
dsqrt
(FP Ext 1 TS)
|
surcharge générique de
dsqrt
(fonction) |
Notes
Les macros standard du C __STDC_IEC_559__ et __STDC_IEC_559_COMPLEX__ sont rendues obsolètes par cette spécification technique.
Toutes les fonctions et macros ajoutées à la bibliothèque C par cette extension ne sont déclarées que si une macro __STDC_WANT_IEC_60559_BFP_EXT__ est définie avant l'inclusion de l'en-tête correspondant.
En plus des ajouts à la bibliothèque standard, l'ISO/CEI TS 18661-1:2014 apporte plusieurs modifications au langage de base, notamment en séparant le contrôle des nombres à virgule flottante entre statique (contrôlé par le nouveau #pragma STDC FENV_ROUND ), et dynamique (contrôlé par fesetround ). La plupart des fonctions math.h respectent le mode d'arrondi statique, s'il est défini, plutôt que le mode d'arrondi dynamique.
|
Cette section est incomplète
Raison : ajouter à la page des pragmas ou décrire le pragma entièrement ici ? |