Primitivos de ponto flutuante

Funções primitivas específicas da Microsoft que são usadas para implementar algumas funções de ponto flutuante padrão da biblioteca do CRT (runtime do C). Elas estão documentados aqui para exaustividade, mas não são recomendadas para uso. Algumas dessas funções são notadas como não usadas, pois são conhecidas por terem problemas de comportamento de precisão, tratamento de exceção e conformidade com o IEEE-754. Elas existem na biblioteca apenas para compatibilidade com versões anteriores. Para obter comportamento correto, portabilidade e adesão aos padrões, prefira as funções de ponto flutuante padrão em vez dessas funções.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.

_dclass, _ldclass, _fdclass

Sintaxe

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

Parâmetros

x
Argumento da função de ponto flutuante.

Comentários

Essas primitivas de ponto flutuante implementam as versões C da macro fpclassify CRT para tipos de ponto flutuante. A classificação do argumento x é retornada como uma destas constantes, definida em math.h:

Valor Descrição
FP_NAN Um NaN silencioso, indeterminado ou com sinalização
FP_INFINITE Um infinito positivo ou negativo
FP_NORMAL Um valor positivo ou negativo normalizado diferente de zero
FP_SUBNORMAL Um valor positivo ou negativo subnormal (desnormalizado)
FP_ZERO Um valor de zero positivo ou negativo

Para obter mais detalhes, você pode usar as funções , _fpclassf específicas _fpclassda Microsoft. Use a macro ou a fpclassify função para portabilidade.

_dsign, _ldsign, _fdsign

Sintaxe

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

Parâmetros

x
Argumento da função de ponto flutuante.

Comentários

Essas primitivas de ponto flutuante implementam a macro ou a signbit função na CRT. Eles retornam um valor diferente de zero se o bit de sinal estiver definido no significante (mantissa) do argumento x. Caso contrário, eles retornarão 0 se o bit de sinal não estiver definido.

_dpcomp, _ldpcomp, _fdpcomp

Sintaxe

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
Argumento da função de ponto flutuante.

Comentários

Essas primitivas de ponto flutuante usam dois argumentos x e , e yretornam um valor que mostra sua relação de ordenação, expressa como o bit a bit ou dessas constantes, definidas em math.h:

Valor Descrição
_FP_LT x pode ser considerado menor que y
_FP_EQ x pode ser considerado igual a y
_FP_GT x pode ser considerado maior que y

Essas primitivas implementam as macros e funções , , islessequalislessisgreaterequalislessgreaterna CRT.isunorderedisgreater

_dtest, _ldtest, _fdtest

Sintaxe

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

Parâmetros

px
Ponteiro para um argumento de ponto flutuante.

Comentários

Essas primitivas de ponto flutuante implementam as versões C++ da função fpclassify CRT para tipos de ponto flutuante. O argumento x é avaliado e a classificação é retornada como uma dessas constantes, definida em math.h:

Valor Descrição
FP_NAN Um NaN silencioso, indeterminado ou com sinalização
FP_INFINITE Um infinito positivo ou negativo
FP_NORMAL Um valor positivo ou negativo normalizado diferente de zero
FP_SUBNORMAL Um valor positivo ou negativo subnormal (desnormalizado)
FP_ZERO Um valor de zero positivo ou negativo

Para obter mais detalhes, você pode usar as funções , _fpclassf específicas _fpclassda Microsoft. Use a fpclassify função para portabilidade.

_d_int, _ld_int, _fd_int

Sintaxe

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
Ponteiro para um argumento de ponto flutuante.

exp
Um expoente como um tipo integral.

Comentários

Essas primitivas de ponto flutuante levam um ponteiro para um valor de ponto flutuante e um valor de expoente e removem a parte fracionária do valor pxexpde ponto flutuante abaixo do expoente dado, se possível. O valor retornado é o resultado de no valor de entrada em se for um NaN ou infinito e no valor de fpclassify saída em pxpx caso contrário.

_dscale, _ldscale, _fdscale

Sintaxe

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
Ponteiro para um argumento de ponto flutuante.

exp
Um expoente como um tipo integral.

Comentários

Essas primitivas de ponto flutuante usam um ponteiro para um valor de ponto flutuante e um valor de expoente e dimensionam o valor pxexpem px 2exp, se possível. O valor retornado é o resultado de no valor de entrada em se for um NaN ou infinito e no valor de fpclassify saída em pxpx caso contrário. Para portabilidade, prefira as ldexpfunções , . ldexplldexpf

_dunscale, _ldunscale, _fdunscale

Sintaxe

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
Um ponteiro para um expoente como um tipo integral.

px
Ponteiro para um argumento de ponto flutuante.

Comentários

Essas primitivas de ponto flutuante decompõem o valor de ponto flutuante apontado por px em um significante (mantissa) e um expoente, se possível. O significando é dimensionado de modo que o valor absoluto seja maior ou igual a 0,5 e menor que 1,0. O expoente é o valor , onde o valor noriginal do ponto flutuante é igual ao significante escalado vezes 2n. Esse expoente n inteiro é armazenado no local apontado por pexp. O valor retornado é o resultado de no valor de entrada em px se for um NaN ou infinito e no valor de saída de fpclassify outra forma. Para portabilidade, prefira as frexpfunções , . frexplfrexpf

_dexp, _ldexp, _fdexp

Sintaxe

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 da função de ponto flutuante.

px
Ponteiro para um argumento de ponto flutuante.

exp
Um expoente como um tipo integral.

Comentários

Essas primitivas de ponto flutuante constroem um valor de ponto flutuante no local apontado por px igual a y * 2exp. O valor retornado é o resultado de no valor de entrada em se for um NaN ou infinito e no valor de fpclassify saída em ypx caso contrário. Para portabilidade, prefira as ldexpfunções , . ldexplldexpf

_dnorm, _fdnorm

Sintaxe

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

Parâmetros

ps
Ponteiro para a representação bit a bit de um valor de ponto flutuante expresso como uma matriz de unsigned short.

Comentários

Esses primitivos de ponto flutuante normalizam a parte fracionária de um valor de ponto flutuante com estouro negativo e ajustam a characteristic, ou expoente de desvio, para correspondência. O valor é passado como a representação bit a bit do tipo de ponto flutuante convertido em uma matriz de através da _double_valunião de punning , _ldouble_valou _float_val type-punning declarada unsigned short em math.h. O valor de retorno é o resultado de no valor de ponto flutuante de entrada se for um NaN ou infinito e no valor de saída de fpclassify outra forma.

_dpoly, _ldpoly, _fdpoly

Sintaxe

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 da função de ponto flutuante.

table
Ponteiro para uma tabela de coeficientes de constantes de um polinômio.

n
Ordem do polinômio a ser avaliado.

Comentários

Essas primitivas de ponto flutuante retornam a avaliação de no polinômio de x ordem n cujos coeficientes são representados pelos valores constantes correspondentes em table. Por exemplo, se table[0] = 3,0, = 4,0, = 5,0 e n = 2, ele representa o polinômio 5,0x 2 + 4,0x+ 3,0 table[1]table[2] . Se este polinômio for avaliado para x 2,0, o resultado é 31,0. Essas funções não são usadas internamente.

_dlog, _dlog, _dlog

Sintaxe

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 da função de ponto flutuante.

base_flag
Sinalizador que controla a base a ser usada, 0 para base e e não zero para base 10.

Comentários

Essas primitivas de ponto flutuante retornam o log natural de x (ln(x) ou loge(x)), quando base_flag é 0. Eles retornam a base de log 10 de , ou log10(x), quando base_flag é diferente de xzero. Essas funções não são usadas internamente. Para portabilidade, prefira as funções , , , , log10logllogflog10fe .log10llog

_dsin, _ldsin, _fdsin

Sintaxe

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 da função de ponto flutuante.

quadrant
Deslocamento de quadrante igual a 0, 1, 2 ou 3 a ser usado para produzir resultados sin, cos, -sin e -cos.

Comentários

Essas primitivas de ponto flutuante retornam o seno de deslocamento x pelo quadrant módulo 4. Efetivamente, eles retornam o seno, o cosseno, o -seno, e o -cosseno de x quando quadrant o módulo 4 é 0, 1, 2 ou 3, respectivamente. Essas funções não são usadas internamente. Para portabilidade, prefira as sinfunções , , , , , cosfcos, . coslsinfsinl

Requisitos

Cabeçalho: <math.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Confira também

Suporte a matemática e ponto flutuante
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