Floating-point extensions part 1: binary floating-point arithmetic
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> | |
| (FP Ext 1 TS) |
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) |
| (FP Ext 1 TS) |
rundet auf vorzeichenbehaftete ganze Zahlen unter Verwendung der angegebenen Rundungsrichtung (Funktion) |
| (FP Ext 1 TS) |
rundet auf vorzeichenlose ganze Zahlen unter Verwendung der angegebenen Rundungsrichtung (Funktion) |
| (FP Ext 1 TS) |
rundet auf vorzeichenbehaftete ganze Zahlen unter Verwendung der angegebenen Rundungsrichtung und meldet Ungenauigkeit (Funktion) |
| (FP Ext 1 TS) |
rundet auf vorzeichenlose ganze Zahlen unter Verwendung der angegebenen Rundungsrichtung und meldet Ungenauigkeit (Funktion) |
| (FP Ext 1 TS) |
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) |
| (FP Ext 1 TS) |
gibt den Wert ihres Arguments mit der größten Betragsgröße zurück (Funktion) |
| (FP Ext 1 TS) |
gibt den Wert ihres Arguments mit der kleinsten Betragsgröße zurück (Funktion) |
| (FP Ext 1 TS) |
gibt den nächstgrößeren darstellbaren Gleitkommawert zurück (Funktion) |
| (FP Ext 1 TS) |
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) |
| (FP Ext 1 TS) |
ordnet zwei Gleitkommawerte unter Verwendung der ISO 60559 Totalordnungsrelation (Funktion) |
| (FP Ext 1 TS) |
ordnet die Betragsgrößen von zwei Gleitkommawerten unter Verwendung der ISO 60559 Totalordnungsrelation (Funktion) |
| (FP Ext 1 TS) |
ermittelt die ISO 60559 kanonische binäre Kodierung des gegebenen Gleitkommawerts (Funktion) |
| (FP Ext 1 TS) |
extrahiert die Payload aus dem gegebenen NaN-Wert (Funktion) |
| (FP Ext 1 TS) |
erstellt ein stilles NaN mit der angegebenen Payload (Funktion) |
| (FP Ext 1 TS) |
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.
| Dieser Abschnitt ist unvollständig Grund: zur Pragma-Seite hinzufügen oder das Pragma hier vollständig beschreiben? |