Floating-point extensions part 1: binary floating-point arithmetic
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>
|
|
|
(FP Ext 1 TS)
|
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) |
|
(FP Ext 1 TS)
|
Rundet auf Ganzzahl mit Vorzeichen unter Verwendung der angegebenen Rundungsrichtung
(Funktion) |
|
(FP Ext 1 TS)
|
Rundung auf vorzeichenlose Ganzzahl unter Verwendung der angegebenen Rundungsrichtung
(Funktion) |
|
(FP Ext 1 TS)
|
Rundet auf Ganzzahl mit Vorzeichen unter Verwendung der angegebenen Rundungsrichtung und meldet Ungenauigkeit
(Funktion) |
|
(FP Ext 1 TS)
|
Rundet auf vorzeichenlose Ganzzahl unter Verwendung der angegebenen Rundungsrichtung und meldet Ungenauigkeit
(Funktion) |
|
(FP Ext 1 TS)
|
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) |
|
(FP Ext 1 TS)
|
gibt den Wert ihres Arguments mit maximalem Betrag zurück
(Funktion) |
|
(FP Ext 1 TS)
|
gibt den Wert ihres Arguments mit minimalem Betrag 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 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) |
|
(FP Ext 1 TS)
|
ordnet zwei Gleitkommawerte gemäß der ISO 60559 Totalordnung an
(Funktion) |
|
(FP Ext 1 TS)
|
ordnet die Beträge zweier Gleitkommawerte mithilfe der ISO 60559-Gesamtordnungsrelation
(Funktion) |
|
(FP Ext 1 TS)
|
erhält die ISO 60559 kanonische Binärkodierung des gegebenen Gleitkommawerts
(Funktion) |
|
(FP Ext 1 TS)
|
extrahiert die Nutzdaten aus dem gegebenen NaN-Wert
(Funktion) |
|
(FP Ext 1 TS)
|
erzeugt ein stilles NaN mit der angegebenen Nutzdaten
(Funktion) |
|
(FP Ext 1 TS)
|
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.
|
Dieser Abschnitt ist unvollständig
Grund: zur Pragma-Seite hinzufügen oder das Pragma hier vollständig beschreiben? |