Namensräume
Varianten
Aktionen

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

Von cppreference.com

Floating-point extensions for C - Part 1: Binary floating-point arithmetic, ISO/IEC TS 18661-1:2014, definiert die folgenden neuen Komponenten für die C-Standardbibliothek, wie von ISO/IEC/IEEE 60559:2011 (der aktuellen Revision von IEEE-754) empfohlen.

__STDC_IEC_60559_BFP__
Ganzzahlkonstante vom Typ long mit dem Wert 201ymmL ersetzt __STDC_IEC_559__
(Makro-Konstante)
__STDC_IEC_60559_COMPLEX__
Ganzzahlkonstante vom Typ long mit dem Wert 201ymmL ersetzt __STDC_IEC_559_COMPLEX__
(Makro-Konstante)
Definiert im Header <limits.h>
CHAR_WIDTH SCHAR_WIDTH UCHAR_WIDTHSHRT_WIDTH USHRT_WIDTHINT_WIDTH UINT_WIDTHLONG_WIDTH ULONG_WIDTHLLONG_WIDTH ULLONG_WIDTH
(FP Ext 1 TS)
Breite, in Bits, des entsprechenden Typs
(Makro-Konstante)
Definiert in Header <float.h>
(FP Ext 1 TS)
Konvertierungen zwischen allen unterstützten binären Gleitkommatypen und Zeichensequenzen mit maximal CR_DECIMAL_DIG signifikanten Dezimalstellen sind korrekt gerundet (dies ist mindestens DECIMAL_DIG + 3)
(Makro-Konstante)
Definiert in der Headerdatei <fenv.h>
femode_t
(FP Ext 1 TS)
Sammlung dynamischer Gleitkomma-Steuerungsmodi, die von der Implementierung unterstützt werden, einschließlich des dynamischen Rundungsrichtungsmodus
(typedef)
FE_DFL_MODE
(FP Ext 1 TS)
Zeiger auf den Standard-femode_t
(Makro-Konstante)
FE_SNANS_ALWAYS_SIGNAL
(FP Ext 1 TS)
definiert (als Ganzzahlkonstante 1), wenn sNaN-Argumente dazu führen, dass Funktionen, die qNaNs unterdrücken, wie hypot oder fmax, FE_INVALID auslösen und ein qNaN zurückgeben.
(Makro-Konstante)
(FP Ext 1 TS)
setzt die angegebenen Gleitkomma-Ausnahme-Flags, ohne Nebenwirkungen zu verursachen, die deren Auslösung hätte
(Funktion)
(FP Ext 1 TS)
prüft, ob gegebene Flags in einer gespeicherten Darstellung der Gleitkomma-Ausnahme-Flags vorhanden sind
(Funktion)
(FP Ext 1 TS)
ruft ab und setzt alle dynamischen Gleitkomma-Steuerungsmodi der Implementierung kollektiv
(Funktion)
Definiert in Header <stdint.h>
INTn_WIDTH UINTn_WIDTHINT_LEASTn_WIDTH UINT_LEASTn_WIDTHINT_FASTn_WIDTH UINT_FASTn_WIDTHINTPTR_WIDTH UINTPTR_WIDTHINTMAX_WIDTH UINTMAX_WIDTHPTRDIFF_WIDTHSIG_ATOMIC_WIDTHSIZE_WIDTHWCHAR_WIDTH WINT_WIDTH
(FP Ext 1 TS)
Breite, in Bits, des entsprechenden Typs
(Makro-Konstante)
Definiert im Header <stdlib.h>
konvertiert eine einzelne Gleitkommazahl in eine Zeichenkette unter Verwendung des angegebenen snprintf-Formats
(Funktion)
Definiert in Header <math.h>
FP_INT_UPWARDFP_INT_DOWNWARDFP_INT_TOWARDZERO FP_INT_TONEARESTFROMZEROFP_INT_TONEAREST
(FP Ext 1 TS)
Rundungsrichtung für die Funktionen ceil, floor, trunc, round und roundeven, geeignet für die Verwendung mit der Familie der fromfp-Funktionen
(Makro-Konstante)
FP_LLOGB0
(FP Ext 1 TS)
Wert, der von llogb zurückgegeben wird, wenn das Argument Null ist
(Makro-Konstante)
FP_LLOGBNAN
(FP Ext 1 TS)
Wert, der von llogb zurückgegeben wird, wenn das Argument NaN ist
(Makro-Konstante)
(FP Ext 1 TS)
repräsentiert ein signifikales NaN für float, double, long double, jeweils
(Makro-Konstante)
FP_FAST_FADD FP_FAST_FADDL FP_FAST_DADDLFP_FAST_FSUB FP_FAST_FSUBL FP_FAST_DSUBLFP_FAST_FMUL FP_FAST_FMULL FP_FAST_DMULLFP_FAST_FDIV FP_FAST_FDIVL FP_FAST_DDIVLFP_FAST_FFMA FP_FAST_FFMAL FP_FAST_DFMALFP_FAST_FSQRT FP_FAST_FSQRTL FP_FAST_DSQRTL
(FP Ext 1 TS)
falls definiert, zeigt an, dass die entsprechende Funktion schneller ausgeführt wird als die äquivalente Funktion in einem größeren Typ, gefolgt von einer Umwandlung in den Zieltyp
(Makro-Konstante)
iseqsig
(FP Ext 1 TS)

(Funktionsmakro)
iscanonical
(FP Ext 1 TS)
prüft, ob der Gleitkommawert kanonisch ist
(Funktionsmakro)
issignaling
(FP Ext 1 TS)
prüft, ob der Gleitkommawert ein signifikales NaN ist
(Funktionsmakro)
issubnormal
(FP Ext 1 TS)
prüft, ob der Gleitkommawert subnormal ist
(Funktionsmakro)
iszero
(FP Ext 1 TS)
prüft, ob der Gleitkommawert Null ist (positiv, negativ, vorzeichenlos)
(Funktionsmakro)
rundet auf vorzeichenbehaftete ganze Zahlen unter Verwendung der angegebenen Rundungsrichtung
(Funktion)
rundet auf vorzeichenlose ganze Zahlen unter Verwendung der angegebenen Rundungsrichtung
(Funktion)
rundet auf vorzeichenbehaftete ganze Zahlen unter Verwendung der angegebenen Rundungsrichtung und meldet Ungenauigkeit
(Funktion)
rundet auf vorzeichenlose ganze Zahlen unter Verwendung der angegebenen Rundungsrichtung und meldet Ungenauigkeit
(Funktion)
rundet zur nächsten Zahl, wobei halbe Fälle zur geraden Zahl gerundet werden
(Funktion)
(FP Ext 1 TS)
entspricht logb, außer dass der Rückgabetyp long ist
(Funktion)
gibt den Wert ihres Arguments mit der größten Betragsgröße zurück
(Funktion)
gibt den Wert ihres Arguments mit der kleinsten Betragsgröße zurück
(Funktion)
gibt den nächstgrößeren darstellbaren Gleitkommawert zurück
(Funktion)
gibt den nächstkleineren darstellbaren Gleitkommawert zurück
(Funktion)
(FP Ext 1 TS)
berechnet x+y, als ob in unendlicher Präzision und einmal in den Zieltyp gerundet
(Funktion)
(FP Ext 1 TS)
berechnet x-y, als ob in unendlicher Präzision und einmal in den Zieltyp gerundet
(Funktion)
(FP Ext 1 TS)
berechnet x*y, als ob in unendlicher Präzision und einmal in den Zieltyp gerundet
(Funktion)
(FP Ext 1 TS)
berechnet x/y, als ob in unendlicher Präzision und einmal in den Zieltyp gerundet
(Funktion)
(FP Ext 1 TS)
berechnet dasselbe wie fma, als ob in unendlicher Präzision und einmal in den Zieltyp gerundet
(Funktion)
(FP Ext 1 TS)
berechnet dasselbe wie sqrt, als ob in unendlicher Präzision und einmal in den Zieltyp gerundet
(Funktion)
ordnet zwei Gleitkommawerte unter Verwendung der ISO 60559 Totalordnungsrelation
(Funktion)
ordnet die Betragsgrößen von zwei Gleitkommawerten unter Verwendung der ISO 60559 Totalordnungsrelation
(Funktion)
ermittelt die ISO 60559 kanonische binäre Kodierung des gegebenen Gleitkommawerts
(Funktion)
extrahiert die Payload aus dem gegebenen NaN-Wert
(Funktion)
erstellt ein stilles NaN mit der angegebenen Payload
(Funktion)
erstellt ein signifikales NaN mit der angegebenen Payload
(Funktion)
Definiert in Header <tgmath.h>
roundeven
(FP Ext 1 TS)
generische Überladung von roundeven
(Funktion)
llogb
(FP Ext 1 TS)
generische Überladung von llogb
(Funktion)
fmaxmag
(FP Ext 1 TS)
generische Überladung von fmaxmag
(Funktion)
fminmag
(FP Ext 1 TS)
generische Überladung von fminmag
(Funktion)
nextup
(FP Ext 1 TS)
generische Überladung von nextup
(Funktion)
nextdown
(FP Ext 1 TS)
generische Überladung von nextdown
(Funktion)
fromfp
(FP Ext 1 TS)
generische Überladung von fromfp
(Funktion)
ufromfp
(FP Ext 1 TS)
generische Überladung von ufromfp
(Funktion)
fromfpx
(FP Ext 1 TS)
generische Überladung von fromfpx
(Funktion)
ufromfpx
(FP Ext 1 TS)
generische Überladung von ufromfpx
(Funktion)
nextdown
(FP Ext 1 TS)
generische Überladung von nextdown
(Funktion)
totalorder
(FP Ext 1 TS)
generische Überladung von totalorder
(Funktion)
totalordermag
(FP Ext 1 TS)
generische Überladung von totalordermag
(Funktion)
fadd
(FP Ext 1 TS)
generische Überladung von fadd
(Funktion)
dadd
(FP Ext 1 TS)
generische Überladung von dadd
(Funktion)
fsub
(FP Ext 1 TS)
generische Überladung von fsub
(Funktion)
dsub
(FP Ext 1 TS)
generische Überladung von dsub
(Funktion)
fmul
(FP Ext 1 TS)
generische Überladung von fmul
(Funktion)
dmul
(FP Ext 1 TS)
generische Überladung von dmul
(Funktion)
fdiv
(FP Ext 1 TS)
generische Überladung von fdiv
(Funktion)
ddiv
(FP Ext 1 TS)
generische Überladung von ddiv
(Funktion)
ffma
(FP Ext 1 TS)
generische Überladung von ffma
(Funktion)
dfma
(FP Ext 1 TS)
generische Überladung von dfma
(Funktion)
fsqrt
(FP Ext 1 TS)
generische Überladung von fsqrt
(Funktion)
dsqrt
(FP Ext 1 TS)
generische Überladung von dsqrt
(Funktion)

[bearbeiten] Hinweise

Die Standard-C-Makros __STDC_IEC_559__ und __STDC_IEC_559_COMPLEX__ werden durch diese technische Spezifikation obsolet.

Alle Funktionen und Makros, die durch diese Erweiterung zur C-Bibliothek hinzugefügt werden, werden nur deklariert, wenn ein Makro __STDC_WANT_IEC_60559_BFP_EXT__ vor dem Einbinden des entsprechenden Headers definiert wird.

Neben Ergänzungen zur Standardbibliothek nimmt ISO/IEC TS 18661-1:2014 eine Reihe von Änderungen am Kern der Sprache vor, insbesondere die Aufteilung der Gleitkommastuerung zwischen statisch (gesteuert durch die neue #pragma STDC FENV_ROUND) und dynamisch (gesteuert durch fesetround). Die meisten math.h-Funktionen berücksichtigen den statischen Rundungsmodus, falls gesetzt, vor dem dynamischen Rundungsmodus.