Primitive a virgola mobile

Funzioni primitive specifiche di Microsoft usate per implementare alcune funzioni A virgola mobile della libreria di runtime C (CRT) standard. Sono documentati qui per completezza, ma non sono consigliati per l'uso. Alcune di queste funzioni sono indicate come inutilizzate, perché sono note per avere problemi di precisione, gestione delle eccezioni e conformità al comportamento I edizione Enterprise E-754. Sono presenti nella libreria solo per garantire la compatibilità con le versioni precedenti. Per un comportamento corretto, la portabilità e la conformità agli standard, preferire le funzioni a virgola mobile standard rispetto a queste funzioni.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

_dclass, _ldclass, _fdclass

Sintassi

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

Parametri

x
Argomento della funzione a virgola mobile.

Osservazioni:

Queste primitive a virgola mobile implementano le versioni C della macro fpclassify CRT per i tipi a virgola mobile. La classificazione dell'argomento x viene restituita come una di queste costanti, definite in math.h:

Valore Descrizione
FP_NAN NaN silenzioso, segnalatore o indeterminato
FP_INFINITE Infinito positivo o negativo
FP_NORMAL Valore diverso da zero normalizzato positivo o negativo
FP_SUBNORMAL Valore subnormativo positivo o negativo (denormalizzato)
FP_ZERO Valore zero positivo o negativo

Per altri dettagli, è possibile usare le funzioni specifiche _fpclassf di _fpclassMicrosoft. Utilizzare la macro o la fpclassify funzione per la portabilità.

_dsign, _ldsign, _fdsign

Sintassi

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

Parametri

x
Argomento della funzione a virgola mobile.

Osservazioni:

Queste primitive a virgola mobile implementano la macro o la signbit funzione in CRT. Restituiscono un valore diverso da zero se il bit del segno è impostato nel significando (mantissa) dell'argomento x. In caso contrario, restituiscono 0 se il bit del segno non è impostato.

_dpcomp, _ldpcomp, _fdpcomp

Sintassi

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

Parametri

x, y
Argomenti della funzione a virgola mobile.

Osservazioni:

Queste primitive a virgola mobile accettano due argomenti e xye restituiscono un valore che mostra la relazione di ordinamento, espressa come bit per bit o di queste costanti, definite in math.h:

Valore Descrizione
_FP_LT x può essere considerato minore di y
_FP_EQ x può essere considerato uguale a y
_FP_GT x può essere considerato maggiore di y

Queste primitive implementano le isgreaterisgreaterequalmacro , isless, islessequal, islessgreater, e isunordered e in CRT.

_dtest, _ldtest, _fdtest

Sintassi

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

Parametri

px
Puntatore a un argomento a virgola mobile.

Osservazioni:

Queste primitive a virgola mobile implementano le versioni C++ della funzione fpclassify CRT per i tipi a virgola mobile. L'argomento x viene valutato e la classificazione viene restituita come una di queste costanti, definite in math.h:

Valore Descrizione
FP_NAN NaN silenzioso, segnalatore o indeterminato
FP_INFINITE Infinito positivo o negativo
FP_NORMAL Valore diverso da zero normalizzato positivo o negativo
FP_SUBNORMAL Valore subnormativo positivo o negativo (denormalizzato)
FP_ZERO Valore zero positivo o negativo

Per altri dettagli, è possibile usare le funzioni specifiche _fpclassf di _fpclassMicrosoft. Usare la fpclassify funzione per la portabilità.

_d_int, _ld_int, _fd_int

Sintassi

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

Parametri

px
Puntatore a un argomento a virgola mobile.

exp
Esponente come tipo integrale.

Osservazioni:

Queste primitive a virgola mobile accettano un puntatore a un valore px a virgola mobile e un valore expesponente e rimuovono la parte frazionaria del valore a virgola mobile sotto l'esponente specificato, se possibile. Il valore restituito è il risultato di sul valore di fpclassify input in px se si tratta di un Valore NaN o infinito e sul valore di output in caso px contrario.

_dscale, _ldscale, _fdscale

Sintassi

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

Parametri

px
Puntatore a un argomento a virgola mobile.

exp
Esponente come tipo integrale.

Osservazioni:

Queste primitive a virgola mobile accettano un puntatore a un valore px a virgola mobile e un valore expesponente e ridimensionano il valore in px di 2exp, se possibile. Il valore restituito è il risultato di sul valore di fpclassify input in px se si tratta di un Valore NaN o infinito e sul valore di output in caso px contrario. Per la portabilità, preferire le ldexpfunzioni , . ldexplldexpf

_dunscale, _ldunscale, _fdunscale

Sintassi

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

Parametri

pexp
Puntatore a un esponente come tipo integrale.

px
Puntatore a un argomento a virgola mobile.

Osservazioni:

Queste primitive a virgola mobile suddividono il valore a virgola mobile puntato da px in un significando (mantissa) e un esponente, se possibile. Il significand viene ridimensionato in modo che il valore assoluto sia maggiore o uguale a 0,5 e minore di 1,0. L'esponente è il valore n, dove il valore a virgola mobile originale è uguale al significando scalato volte 2n. Questo esponente n integer viene archiviato nella posizione a pexpcui punta . Il valore restituito è il risultato di sul valore di fpclassify input in px se si tratta di un Valore NaN o infinito e sul valore di output in caso contrario. Per la portabilità, preferire le frexpfunzioni , . frexplfrexpf

_dexp, _ldexp, _fdexp

Sintassi

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

Parametri

y
Argomento della funzione a virgola mobile.

px
Puntatore a un argomento a virgola mobile.

exp
Esponente come tipo integrale.

Osservazioni:

Queste primitive a virgola mobile costruiscono un valore a virgola mobile nella posizione a px cui punta uguale a y * 2exp. Il valore restituito è il risultato di sul valore di fpclassify input in y se si tratta di un Valore NaN o infinito e sul valore di output in caso px contrario. Per la portabilità, preferire le ldexpfunzioni , . ldexplldexpf

_dnorm, _fdnorm

Sintassi

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

Parametri

ps
Puntatore alla rappresentazione bit per bit di un valore a virgola mobile espresso come matrice di unsigned short.

Osservazioni:

Queste primitive a virgola mobile normalizzano la parte frazionaria di un valore a virgola mobile sottoflow e regolano la caratteristica o l'esponente distorto in modo che corrispondano. Il valore viene passato come rappresentazione bit per bit del tipo a virgola mobile convertito in una matrice di unsigned short tramite l'unione _double_valtype-punning _ldouble_val_float_val dichiarata in math.h. Il valore restituito è il risultato di sul valore a virgola mobile di fpclassify input se si tratta di un valore NaN o infinity e sul valore di output in caso contrario.

_dpoly, _ldpoly, _fdpoly

Sintassi

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

Parametri

x
Argomento della funzione a virgola mobile.

table
Puntatore a una tabella di coefficienti costanti per un polinomio.

n
Ordine del polinomio da valutare.

Osservazioni:

Queste primitive a virgola mobile restituiscono la valutazione di x nell'ordine n polinomiale i cui coefficienti sono rappresentati dai valori costanti corrispondenti in table. Ad esempio, se table[0] = 3.0, table[1] = 4.0, table[2] = 5.0 e n = 2, rappresenta il polinomio 5,0x2 + 4,0x + 3,0. Se questo polinomio viene valutato per x 2,0, il risultato è 31,0. Queste funzioni non vengono usate internamente.

_dlog, _dlog, _dlog

Sintassi

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

Parametri

x
Argomento della funzione a virgola mobile.

base_flag
Flag che controlla la base da usare, 0 per base e e non-zero per base 10.

Osservazioni:

Queste primitive a virgola mobile restituiscono il log naturale di x (ln(x) o loge(x)), quando base_flag è 0. Restituiscono la base di log 10 di xo log10(x), quando base_flag è diverso da zero. Queste funzioni non vengono usate internamente. Per la portabilità, preferire le funzioni log, logf, logl, log10log10f, e log10l.

_dsin, _ldsin, _fdsin

Sintassi

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

Parametri

x
Argomento della funzione a virgola mobile.

quadrant
Offset quadrante pari a 0, 1, 2 o 3 da usare per produrre sinrisultati , cos-sin, e -cos .

Osservazioni:

Queste primitive a virgola mobile restituiscono il seno di x offset dal quadrant modulo 4. In effetti, restituiscono rispettivamente il seno, il coseno, il seno e il coseno di x quando quadrant il modulo 4 è 0, 1, 2 o 3. Queste funzioni non vengono usate internamente. Per la portabilità, preferire le sinfunzioni , sinlsinf, cos, , cosf, . cosl

Requisiti

Intestazione: <math.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Vedi anche

Supporto matematico e a virgola mobile
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