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 IEEE-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 _fpclass
Microsoft. 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 x
y
e 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 isgreater
isgreaterequal
macro , 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 _fpclass
Microsoft. 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 exp
esponente 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 exp
esponente 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 ldexp
funzioni , . ldexpl
ldexpf
_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 pexp
cui 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 frexp
funzioni , . frexpl
frexpf
_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 ldexp
funzioni , . ldexpl
ldexpf
_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_val
type-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 x
o log10(x), quando base_flag
è diverso da zero. Queste funzioni non vengono usate internamente. Per la portabilità, preferire le funzioni log
, logf
, logl
, log10
log10f
, 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 sin
risultati , 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 sin
funzioni , sinl
sinf
, 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