Gleitkommaprimitive
Microsoft-spezifische Grundtypenfunktionen, die verwendet werden, um einige standardmäßige C-Laufzeitbibliotheksfunktionen (CRT) zu implementieren. Sie sind hier für Vollständigkeit dokumentiert, aber nicht für die Verwendung empfohlen. Einige dieser Funktionen werden als nicht verwendet bezeichnet, da sie bekanntermaßen Probleme mit Genauigkeit, Ausnahmebehandlung und Konformität mit IEEE-754-Verhalten haben. Sie sind nur aus Gründen der Abwärtskompatibilität in der Bibliothek vorhanden. Um das richtige Verhalten, die Portabilität und die Einhaltung von Standards zu gewährleisten, bevorzugen Sie die Standard-Gleitkommafunktionen gegenüber diesen Funktionen.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
_dclass
, _ldclass
_fdclass
Syntax
short __cdecl _dclass(double x);
short __cdecl _ldclass(long double x);
short __cdecl _fdclass(float x);
Parameter
x
Gleitkommafunktionsargument.
Hinweise
Diese Gleitkommagrundtypen implementieren die C-Versionen des CRT-Makros fpclassify
für Gleitkommatypen. Die Klassifizierung des Arguments x
wird als eine der folgenden Konstanten zurückgegeben, die in math.h definiert sind:
Wert | Beschreibung |
---|---|
FP_NAN |
Ein stiller, signalisierender oder unbestimmter NaN |
FP_INFINITE |
Eine positive oder negative Unendlichkeit |
FP_NORMAL |
Ein positiver oder negativer ungleich null normalisierter Wert |
FP_SUBNORMAL |
Ein positiver oder negativer Subnormalwert (denormalisiert) |
FP_ZERO |
Ein positiver oder negativer Nullwert |
Für weitere Details können Sie die microsoftspezifischen _fpclass
Funktionen _fpclassf
verwenden. Verwenden Sie das Makro oder die fpclassify
Funktion für die Portabilität.
_dsign
, _ldsign
_fdsign
Syntax
int __cdecl _dsign(double x);
int __cdecl _ldsign(long double x);
int __cdecl _fdsign(float x);
Parameter
x
Gleitkommafunktionsargument.
Hinweise
Diese Gleitkommagrundtypen implementieren das Makro oder die signbit
Funktion im CRT. Sie geben einen Wert ungleich Null zurück, wenn das Zeichenbit im Significand (Mantissa) des Arguments x
festgelegt ist. Andernfalls geben sie 0 zurück, wenn das Zeichenbit nicht festgelegt ist.
_dpcomp, _ldpcomp, _fdpcomp
Syntax
int __cdecl _dpcomp(double x, double y);
int __cdecl _ldpcomp(long double x, long double y);
int __cdecl _fdpcomp(float x, float y);
Parameter
x
, y
Gleitkommafunktionsargumente.
Hinweise
Diese Gleitkommagrundtypen verwenden zwei Argumente x
und y
geben einen Wert zurück, der ihre Sortierbeziehung anzeigt, ausgedrückt als bitweise oder von diesen Konstanten, die in math.h definiert sind:
Wert | Beschreibung |
---|---|
_FP_LT |
x kann als kleiner als y |
_FP_EQ |
x kann als gleich angesehen werden y |
_FP_GT |
x kann größer als y |
Diese Grundtypen implementieren die isgreater
Makros isgreaterequal
, , islessequal
isless
, islessgreater
und isunordered
Funktionen im CRT.
_dtest, _ldtest, _fdtest
Syntax
short __cdecl _dtest(double* px);
short __cdecl _ldtest(long double* px);
short __cdecl _fdtest(float* px);
Parameter
px
Zeiger auf ein Gleitkommaargument.
Hinweise
Diese Gleitkommagrundtypen implementieren die C++-Versionen der CRT-Funktion fpclassify
für Gleitkommatypen. Das Argument x
wird ausgewertet, und die Klassifizierung wird als eine der folgenden Konstanten zurückgegeben, die in math.h definiert sind:
Wert | Beschreibung |
---|---|
FP_NAN |
Ein stiller, signalisierender oder unbestimmter NaN |
FP_INFINITE |
Eine positive oder negative Unendlichkeit |
FP_NORMAL |
Ein positiver oder negativer ungleich null normalisierter Wert |
FP_SUBNORMAL |
Ein positiver oder negativer Subnormalwert (denormalisiert) |
FP_ZERO |
Ein positiver oder negativer Nullwert |
Für weitere Details können Sie die microsoftspezifischen _fpclass
Funktionen _fpclassf
verwenden. Verwenden Sie die fpclassify
Funktion zur Portabilität.
_d_int, _ld_int, _fd_int
Syntax
short __cdecl _d_int(double* px, short exp);
short __cdecl _ld_int(long double* px, short exp);
short __cdecl _fd_int(float* px, short exp);
Parameter
px
Zeiger auf ein Gleitkommaargument.
exp
Ein Exponent als integraler Typ.
Hinweise
Diese Gleitkommagrundtypen verwenden einen Zeiger auf einen Gleitkommawert px
und einen Exponentenwert exp
, und entfernen Sie ggf. den Bruchteil des Gleitkommawerts unter dem angegebenen Exponenten. Der zurückgegebene Wert ist das Ergebnis des fpclassify
Eingabewerts, px
wenn es sich um eine NaN- oder Unendlichkeit handelt, und andernfalls für den Ausgabewert px
.
_dscale, _ldscale, _fdscale
Syntax
short __cdecl _dscale(double* px, long exp);
short __cdecl _ldscale(long double* px, long exp);
short __cdecl _fdscale(float* px, long exp);
Parameter
px
Zeiger auf ein Gleitkommaargument.
exp
Ein Exponent als integraler Typ.
Hinweise
Diese Gleitkommagrundtypen verwenden einen Zeiger auf einen Gleitkommawert px
und einen Exponentenwert exp
und skalieren den Wert nach Möglichkeit um px
2exp
. Der zurückgegebene Wert ist das Ergebnis des fpclassify
Eingabewerts, px
wenn es sich um eine NaN- oder Unendlichkeit handelt, und andernfalls für den Ausgabewert px
. Für Portabilität bevorzugen Sie die ldexp
, ldexpf
, ldexpl
Funktionen.
_dunscale, _ldunscale, _fdunscale
Syntax
short __cdecl _dunscale(short* pexp, double* px);
short __cdecl _ldunscale(short* pexp, long double* px);
short __cdecl _fdunscale(short* pexp, float* px);
Parameter
pexp
Ein Zeiger auf einen Exponenten als integraler Typ.
px
Zeiger auf ein Gleitkommaargument.
Hinweise
Diese Gleitkommagrundtypen unterteilen den Gleitkommawert, auf den verwiesen wird, durch px
ein Significand (Mantissa) und einen Exponenten, falls möglich. Das Signifikat wird so skaliert, dass der absolute Wert größer oder gleich 0,5 und kleiner als 1,0 ist. Der Exponent ist der Wert n
, wobei der ursprüngliche Gleitkommawert dem skalierten Zeichenwert von 2n entspricht. Dieser ganzzahlige Exponent n
wird an der Stelle gespeichert, auf pexp
die verwiesen wird. Der zurückgegebene Wert ist das Ergebnis des fpclassify
Eingabewerts, px
wenn es sich um einen NaN oder unendlichen Wert handelt, und andernfalls für den Ausgabewert. Für Portabilität bevorzugen Sie die frexp
, frexpf
, frexpl
Funktionen.
_dexp, _ldexp, _fdexp
Syntax
short __cdecl _dexp(double* px, double y, long exp);
short __cdecl _ldexp(long double* px, long double y, long exp);
short __cdecl _fdexp(float* px, float y, long exp);
Parameter
y
Gleitkommafunktionsargument.
px
Zeiger auf ein Gleitkommaargument.
exp
Ein Exponent als integraler Typ.
Hinweise
Diese Gleitkommagrundtypen erstellen einen Gleitkommawert an der Position, die auf px
* y
2exp verweist. Der zurückgegebene Wert ist das Ergebnis des fpclassify
Eingabewerts, y
wenn es sich um eine NaN- oder Unendlichkeit handelt, und andernfalls für den Ausgabewert px
. Für Portabilität bevorzugen Sie die ldexp
, ldexpf
, ldexpl
Funktionen.
_dnorm, _fdnorm
Syntax
short __cdecl _dnorm(unsigned short* ps);
short __cdecl _fdnorm(unsigned short* ps);
Parameter
ps
Zeiger auf die bitweise Darstellung eines Gleitkommawerts, ausgedrückt als Array von unsigned short
.
Hinweise
Diese Gleitkommagrundtypen normalisieren den Bruchteil eines unterlaufenen Gleitkommawerts und passen das Merkmal oder den voreingenommenen Exponenten entsprechend an. Der Wert wird als bitweise Darstellung des Gleitkommatyps übergeben, der in ein Array mit unsigned short
der _double_val
_ldouble_val
_float_val
in math.h deklarierten Vereinigung oder Typzeichenunion konvertiert wird. Der Rückgabewert ist das Ergebnis des fpclassify
Eingabe-Gleitkommawerts, wenn es sich um einen NaN oder unendlichen Wert handelt und andernfalls für den Ausgabewert.
_dpoly, _ldpoly, _fdpoly
Syntax
double __cdecl _dpoly(double x, double const* table, int n);
long double __cdecl _ldpoly(long double x, long double const* table, int n);
float __cdecl _fdpoly(float x, _float const* table, int n);
Parameter
x
Gleitkommafunktionsargument.
table
Zeiger auf eine Tabelle mit Konstantenkoeffizienten für ein Polynom.
n
Reihenfolge des zu bewertenden Polynoms.
Hinweise
Diese Gleitkommagrundtypen geben die Auswertung x
im Polynom der Reihenfolge n
zurück, deren Koeffizienten durch die entsprechenden Konstantenwerte in table
dargestellt werden. Wenn z. B table[0]
. = 3,0, table[1]
= 4,0, table[2]
= 5,0 und n
= 2, stellt sie das Polynomial 5,0x2 + 4,0x + 3,0 dar. Wenn dieses Polynom für x
2,0 ausgewertet wird, ist das Ergebnis 31,0. Diese Funktionen werden nicht intern verwendet.
_dlog, _dlog, _dlog
Syntax
double __cdecl _dlog(double x, int base_flag);
long double __cdecl _ldlog(long double x, int base_flag);
float __cdecl _fdlog(float x, int base_flag);
Parameter
x
Gleitkommafunktionsargument.
base_flag
Kennzeichnen, das die zu verwendende Basis steuert, 0 für Basis e und ungleich Null für Basis 10.
Hinweise
Diese Gleitkommagrundtypen geben das natürliche Protokoll von x
(ln(x) oder loge(x)) zurück, wenn base_flag
0 ist. Sie geben die Protokollbasis 10 von x
oder log10(x) zurück, wenn base_flag
nicht Null ist. Diese Funktionen werden nicht intern verwendet. Für Portabilität bevorzugen Sie die Funktionen , , logf
, logl
, log10
, log10f
und log10l
.log
_dsin, _ldsin, _fdsin
Syntax
double __cdecl _dsin(double x, unsigned int quadrant);
long double __cdecl _ldsin(long double x, unsigned int quadrant);
float __cdecl _fdsin(float x, unsigned int quadrant);
Parameter
x
Gleitkommafunktionsargument.
quadrant
Quadrantenoffset von 0, 1, 2 oder 3, um ergebnisse zu erzeugen, zu cos
-sin
-cos
verwenden.sin
Hinweise
Diese Gleitkommagrundtypen geben den Sinus des x
Offsets durch das quadrant
Modulo 4 zurück. Effektiv geben sie den Sinus, Kosinus, -Sinus und -Kosinus zurück, wenn x
quadrant
Modulo 4 0, 1, 2 oder 3 ist. Diese Funktionen werden nicht intern verwendet. Für Portabilität bevorzugen Sie die Funktionen , , sinf
,cos
sinl
, . cosl
cosf
sin
Anforderungen
Kopfzeile: <math.h>
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Siehe auch
Mathematische Unterstützung und Gleitkommaunterstützung
fpclassify
_fpclass
, _fpclassf
isfinite
, _finite
_finitef
isinf
isnan
, _isnan
_isnanf
isnormal
cos
, cosf
cosl
frexp
, frexpf
frexpl
ldexp
, ldexpf
ldexpl
log
, , logf
logl
, log10
, , log10f
log10l
sin
, sinf
sinl