Namespaces
Variants

Floating-point extensions part 1: binary floating-point arithmetic

From cppreference.net

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>
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)
arrondir à un entier signé en utilisant la direction d'arrondi spécifiée
(fonction)
arrondir à l'entier non signé en utilisant la direction d'arrondi spécifiée
(fonction)
arrondir à l'entier signé en utilisant la direction d'arrondi spécifiée, en signalant l'inexactitude
(fonction)
arrondir à l'entier non signé en utilisant la direction d'arrondi spécifiée, en signalant l'inexactitude
(fonction)
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)
renvoie la valeur de leur argument de magnitude maximale
(fonction)
renvoie la valeur de leur argument de magnitude minimale
(fonction)
retourne la prochaine valeur représentable supérieure en virgule flottante
(fonction)
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)
ordonne deux valeurs à virgule flottante en utilisant la relation d'ordre total ISO 60559
(fonction)
ordonne les magnitudes de deux valeurs à virgule flottante en utilisant la relation d'ordre total ISO 60559
(fonction)
obtient l'encodage binaire canonique ISO 60559 de la valeur en virgule flottante donnée
(fonction)
extrait la charge utile de la valeur NaN donnée
(fonction)
crée un NaN silencieux avec la charge utile spécifiée
(fonction)
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.