Freigeben über


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. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the 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 _fpclassFunktionen _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 xfestgelegt 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 ygeben 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 isgreaterMakros isgreaterequal, , islessequalisless, islessgreaterund 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 _fpclassFunktionen _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 expund 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 pexpdie 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 tabledargestellt 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 xoder 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, log10fund 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 xquadrant Modulo 4 0, 1, 2 oder 3 ist. Diese Funktionen werden nicht intern verwendet. Für Portabilität bevorzugen Sie die Funktionen , , sinf,cossinl , .coslcosfsin

Anforderungen

Kopfzeile: <math.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Siehe auch

Mathematische 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