Tipos primitivos de punto flotante

Funciones primitivas específicas de Microsoft que se usan para implementar algunas funciones de punto flotante de la biblioteca estándar en tiempo de ejecución de C (CRT). Se documentan aquí para proporcionar información completa, pero no se recomienda su uso. Algunas de estas funciones se destacan como no usadas, ya que se sabe que tienen problemas de precisión, control de excepciones y conformidad con el comportamiento de IEEE-754. Solo existen en la biblioteca para la compatibilidad con versiones anteriores. Para obtener un comportamiento correcto, portabilidad y cumplimiento de los estándares, se prefieren las funciones estándar de punto flotante sobre estas funciones.

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.

_dclass, _ldclass, _fdclass

Sintaxis

short __cdecl _dclass(double x);
short __cdecl _ldclass(long double x);
short __cdecl _fdclass(float x);

Parámetros

x
Argumento de función de punto flotante.

Comentarios

Estos primitivos de punto flotante implementan las versiones de C de la macro fpclassify de CRT para los tipos de punto flotante. La clasificación del argumento x se devuelve como una de estas constantes, definida en math.h:

Valor Descripción
FP_NAN NaN reservado, de señalización o indeterminado
FP_INFINITE Infinito positivo o negativo
FP_NORMAL Valor positivo o negativo normalizado distinto de cero
FP_SUBNORMAL Valor positivo o negativo no normal (sin normalizar)
FP_ZERO Valor cero positivo o negativo

Para obtener más información, puede usar las funciones específicas _fpclass_fpclassf de Microsoft. Use la fpclassify macro o función para la portabilidad.

_dsign, _ldsign, _fdsign

Sintaxis

int __cdecl _dsign(double x);
int __cdecl _ldsign(long double x);
int __cdecl _fdsign(float x);

Parámetros

x
Argumento de función de punto flotante.

Comentarios

Estos primitivos de punto flotante implementan la signbit macro o función en CRT. Devuelven un valor distinto de cero si el bit de signo se establece en el significand (mantissa) del argumento x. De lo contrario, devuelven 0 si el bit de signo no está establecido.

_dpcomp, _ldpcomp, _fdpcomp

Sintaxis

int __cdecl _dpcomp(double x, double y);
int __cdecl _ldpcomp(long double x, long double y);
int __cdecl _fdpcomp(float x, float y);

Parámetros

x, y
Argumentos de función de punto flotante.

Comentarios

Estos primitivos de punto flotante toman dos argumentos, x y y, y devuelven un valor que muestra su relación de ordenación, expresada como bit a bit o de estas constantes, definidas en math.h:

Valor Descripción
_FP_LT x se puede considerar menor que y
_FP_EQ x se puede considerar igual a y
_FP_GT x se puede considerar mayor que y

Estos primitivos implementan las isgreatermacros , isgreaterequal, islessequalisless, islessgreater, y isunordered en CRT.

_dtest, _ldtest, _fdtest

Sintaxis

short __cdecl _dtest(double* px);
short __cdecl _ldtest(long double* px);
short __cdecl _fdtest(float* px);

Parámetros

px
Puntero a un argumento de punto flotante.

Comentarios

Estos primitivos de punto flotante implementan las versiones de C++ de la función fpclassify de CRT para los tipos de punto flotante. El argumento x se evalúa y la clasificación se devuelve como una de estas constantes, definida en math.h:

Valor Descripción
FP_NAN NaN reservado, de señalización o indeterminado
FP_INFINITE Infinito positivo o negativo
FP_NORMAL Valor positivo o negativo normalizado distinto de cero
FP_SUBNORMAL Valor positivo o negativo no normal (sin normalizar)
FP_ZERO Valor cero positivo o negativo

Para obtener más información, puede usar las funciones específicas _fpclass_fpclassf de Microsoft. Use la fpclassify función para la portabilidad.

_d_int, _ld_int, _fd_int

Sintaxis

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);

Parámetros

px
Puntero a un argumento de punto flotante.

exp
Un exponente como tipo entero.

Comentarios

Estos primitivos de punto flotante toman un puntero a un valor px de punto flotante y un valor expde exponente y quitan la parte fraccionaria del valor de punto flotante por debajo del exponente especificado, si es posible. El valor devuelto es el resultado de en el valor de fpclassify entrada en px si es un NaN o infinito, y en el valor de salida en px caso contrario.

_dscale, _ldscale, _fdscale

Sintaxis

short __cdecl _dscale(double* px, long exp);
short __cdecl _ldscale(long double* px, long exp);
short __cdecl _fdscale(float* px, long exp);

Parámetros

px
Puntero a un argumento de punto flotante.

exp
Un exponente como tipo entero.

Comentarios

Estos primitivos de punto flotante toman un puntero a un valor px de punto flotante y un valor expde exponente y escalan el valor en px en 2exp, si es posible. El valor devuelto es el resultado de en el valor de fpclassify entrada en px si es un NaN o infinito, y en el valor de salida en px caso contrario. Para la portabilidad, prefiera las ldexpfunciones , . ldexplldexpf

_dunscale, _ldunscale, _fdunscale

Sintaxis

short __cdecl _dunscale(short* pexp, double* px);
short __cdecl _ldunscale(short* pexp, long double* px);
short __cdecl _fdunscale(short* pexp, float* px);

Parámetros

pexp
Puntero a un exponente como tipo entero.

px
Puntero a un argumento de punto flotante.

Comentarios

Estos primitivos de punto flotante desglosan el valor de punto flotante al px que apunta en un significand (mantisa) y un exponente, si es posible. El significando se escala de forma que el valor absoluto sea mayor o igual que 0,5 y menor que 1,0. El exponente es el valor n, donde el valor de punto flotante original es igual al significado escalado veces 2n. Este exponente n entero se almacena en la ubicación a la que pexpapunta . El valor devuelto es el resultado de en el valor de fpclassify entrada en px si es un NaN o infinito, y en el valor de salida de lo contrario. Para la portabilidad, prefiera las frexpfunciones , . frexplfrexpf

_dexp, _ldexp, _fdexp

Sintaxis

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);

Parámetros

y
Argumento de función de punto flotante.

px
Puntero a un argumento de punto flotante.

exp
Un exponente como tipo entero.

Comentarios

Estos primitivos de punto flotante crean un valor de punto flotante en la ubicación a la que apunta igual px a y * 2exp. El valor devuelto es el resultado de en el valor de fpclassify entrada en y si es un NaN o infinito, y en el valor de salida en px caso contrario. Para la portabilidad, prefiera las ldexpfunciones , . ldexplldexpf

_dnorm, _fdnorm

Sintaxis

short __cdecl _dnorm(unsigned short* ps);
short __cdecl _fdnorm(unsigned short* ps);

Parámetros

ps
Puntero a la representación bit a bit de un valor de punto flotante que se expresa como matriz de unsigned short.

Comentarios

Estos tipos primitivos de punto flotante normalizan la parte fraccionaria de un valor de punto flotante subdesbordado y ajustan la característica o el exponente sesgado para que coincidan. El valor se pasa como la representación bit a bit del tipo de punto flotante convertido en una matriz de a través de unsigned short la _double_valunión de selección de tipos , _ldouble_valo _float_val declarada en math.h. El valor devuelto es el resultado de en el valor de punto flotante de fpclassify entrada si es un NaN o infinito, y en el valor de salida de lo contrario.

_dpoly, _ldpoly, _fdpoly

Sintaxis

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);

Parámetros

x
Argumento de función de punto flotante.

table
Puntero a una tabla de coeficientes constantes para un polinomio.

n
Orden del polinomio que se va a evaluar.

Comentarios

Estos primitivos de punto flotante devuelven la evaluación de x en el polinomial de orden n cuyos coeficientes se representan mediante los valores constantes correspondientes en table. Por ejemplo, si table[0] = 3,0, table[1] = 4,0, table[2] = 5,0 y n = 2, representa el polinomial 5,0x2 + 4,0x + 3,0. Si este polinomio se evalúa para x 2.0, el resultado es 31.0. Estas funciones no se usan internamente.

_dlog, _dlog, _dlog

Sintaxis

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);

Parámetros

x
Argumento de función de punto flotante.

base_flag
Marca que controla la base que se va a usar, 0 para la base e y distinto de cero para la base 10.

Comentarios

Estos primitivos de punto flotante devuelven el registro natural de x (ln(x) o loge(x)), cuando base_flag es 0. Devuelven la base de registro 10 de x, o el registro10(x), cuando base_flag no es cero. Estas funciones no se usan internamente. Para la portabilidad, prefiera las funciones , , logllogf, log10, log10fy log10l.log

_dsin, _ldsin, _fdsin

Sintaxis

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);

Parámetros

x
Argumento de función de punto flotante.

quadrant
Desplazamiento cuadrante de 0, 1, 2 o 3 que se usa para generar resultados sin, cos, -sin y -cos.

Comentarios

Estos primitivos de punto flotante devuelven el seno de x desplazamiento por el quadrant módulo 4. De hecho, devuelven el seno, coseno, -seno y -coseno de x cuando quadrant el módulo 4 es 0, 1, 2 o 3, respectivamente. Estas funciones no se usan internamente. Para la portabilidad, prefiera las funciones , sinf, sinl,cos , , . coslcosfsin

Requisitos

Encabezado: <math.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Consulte también

Compatibilidad con matemáticas y punto flotante
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