Namespaces
Variants

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

From cppreference.net

Gleitkomma-Erweiterungen für C - Teil 1: Binäre Gleitkomma-Arithmetik, ISO/IEC TS 18661-1:2014, definiert die folgenden neuen Komponenten für die C-Standardbibliothek, wie von ISO/IEC/IEEE 60559:2011 empfohlen (die aktuelle Revision von IEEE-754)

__STDC_IEC_60559_BFP__
Ganzzahlkonstante vom Typ long und Wert 201ymmL , ersetzt __STDC_IEC_559__
(Makrokonstante)
__STDC_IEC_60559_COMPLEX__
Ganzzahlkonstante vom Typ long und Wert 201ymmL , ersetzt __STDC_IEC_559_COMPLEX__
(Makrokonstante)
Definiert im Header <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)
Breite in Bits des entsprechenden Typs
(Makrokonstante)
Definiert im Header <float.h>
(FP Ext 1 TS)
Konvertierungen zwischen allen unterstützten binären Gleitkommatypen und Zeichenfolgen mit höchstens CR_DECIMAL_DIG signifikanten Dezimalstellen sind korrekt gerundet (dies ist mindestens DECIMAL_DIG + 3)
(Makrokonstante)
Definiert im Header <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
(Makrokonstante)
FE_SNANS_ALWAYS_SIGNAL
(FP Ext 1 TS)
definiert (als ganzzahlige Konstante 1), falls sNaN-Argumente dazu führen, dass Funktionen, die qNaNs unterdrücken, wie hypot oder fmax , FE_INVALID auslösen und ein qNaN zurückgeben
(Makrokonstante)
(FP Ext 1 TS)
setzt die angegebenen Gleitkomma-Ausnahmeflags, ohne Nebeneffekte zu verursachen, die durch deren Auslösung entstehen würden
(Funktion)
(FP Ext 1 TS)
prüft, ob gegebene Flags in einer gespeicherten Darstellung der Gleitkomma-Ausnahmeflags enthalten sind
(Funktion)
(FP Ext 1 TS)
ruft alle dynamischen Gleitkomma-Steuerungsmodi der Implementierung gemeinsam ab und setzt sie
(Funktion)
Definiert im Header <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)
Breite in Bits des entsprechenden Typs
(Makrokonstante)
Definiert in Header <stdlib.h>
wandelt eine einzelne Gleitkommazahl in einen String um unter Verwendung des angegebenen snprintf-Formats
(Funktion)
Definiert im Header <math.h>
FP_INT_UPWARD FP_INT_DOWNWARD FP_INT_TOWARDZERO FP_INT_TONEARESTFROMZERO FP_INT_TONEAREST
(FP Ext 1 TS)
Rundungsrichtung für die Funktionen ceil, floor, trunc, round und roundeven, geeignet für die Verwendung mit der fromfp-Funktionsfamilie
(Makrokonstante)
FP_LLOGB0
(FP Ext 1 TS)
Wert, der von llogb zurückgegeben wird, wenn das Argument null ist
(Makrokonstante)
FP_LLOGBNAN
(FP Ext 1 TS)
Wert, der von llogb zurückgegeben wird, wenn das Argument NaN ist
(Makrokonstante)
(FP Ext 1 TS)
repräsentiert ein signalisierendes NaN für float, double, long double jeweils
(Makrokonstante)
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)
Falls definiert, gibt 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
(Makrokonstante)
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 eine signalisierende 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 Ganzzahl mit Vorzeichen unter Verwendung der angegebenen Rundungsrichtung
(Funktion)
Rundung auf vorzeichenlose Ganzzahl unter Verwendung der angegebenen Rundungsrichtung
(Funktion)
Rundet auf Ganzzahl mit Vorzeichen unter Verwendung der angegebenen Rundungsrichtung und meldet Ungenauigkeit
(Funktion)
Rundet auf vorzeichenlose Ganzzahl unter Verwendung der angegebenen Rundungsrichtung und meldet Ungenauigkeit
(Funktion)
rundet auf den nächsten Wert, bei Mittelwerten zur geraden Zahl
(Funktion)
(FP Ext 1 TS)
entspricht logb außer dass der Rückgabetyp long ist
(Funktion)
gibt den Wert ihres Arguments mit maximalem Betrag zurück
(Funktion)
gibt den Wert ihres Arguments mit minimalem Betrag 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 mit unendlicher Genauigkeit und einmalig auf den Zieltyp gerundet
(Funktion)
(FP Ext 1 TS)
berechnet x-y als ob mit unendlicher Präzision und einmal auf den Zieltyp gerundet
(Funktion)
(FP Ext 1 TS)
berechnet x*y als ob mit unendlicher Präzision und einmalig auf den Zieltyp gerundet
(Funktion)
(FP Ext 1 TS)
berechnet x/y als ob mit unendlicher Präzision und einmalig auf den Zieltyp gerundet
(Funktion)
(FP Ext 1 TS)
berechnet dasselbe wie fma als ob mit unendlicher Genauigkeit und einmal auf den Zieltyp gerundet
(Funktion)
(FP Ext 1 TS)
berechnet dasselbe wie sqrt als ob mit unendlicher Präzision und einmal auf den Zieltyp gerundet
(Funktion)
ordnet zwei Gleitkommawerte gemäß der ISO 60559 Totalordnung an
(Funktion)
ordnet die Beträge zweier Gleitkommawerte mithilfe der ISO 60559-Gesamtordnungsrelation
(Funktion)
erhält die ISO 60559 kanonische Binärkodierung des gegebenen Gleitkommawerts
(Funktion)
extrahiert die Nutzdaten aus dem gegebenen NaN-Wert
(Funktion)
erzeugt ein stilles NaN mit der angegebenen Nutzdaten
(Funktion)
erzeugt ein signalisierendes NaN mit dem angegebenen Payload
(Funktion)
Definiert im 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)

Hinweise

Die standardmäßigen 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, falls ein Makro __STDC_WANT_IEC_60559_BFP_EXT__ definiert ist, bevor der entsprechende Header eingebunden wird.

Neben Ergänzungen zur Standardbibliothek nimmt ISO/IEC TS 18661-1:2014 eine Reihe von Änderungen an der Kernsprache vor, insbesondere die Aufteilung der Gleitkomma-Steuerung in statische (gesteuert durch das neue #pragma STDC FENV_ROUND ) und dynamische (gesteuert durch fesetround ). Die meisten math.h-Funktionen berücksichtigen den statischen Rundungsmodus, falls gesetzt, gegenüber dem dynamischen Rundungsmodus.