Primitiva s plovoucí desetinnou čárkou
Primitivní funkce specifické pro Microsoft, které se používají k implementaci některých standardních funkcí c runtime knihovny (CRT) s plovoucí desetinou čárkou. Jsou zde zdokumentované kvůli úplnosti, ale nedoporučuje se pro použití. Některé z těchto funkcí jsou označeny jako nepoužívané, protože vědí, že mají problémy s přesností, zpracováním výjimek a shodným s chováním IEEE-754. Existují v knihovně pouze kvůli zpětné kompatibilitě. Pro správné chování, přenositelnost a dodržování standardů upřednostňujte u těchto funkcí standardní funkce s plovoucí desetinou čárkou.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
_dclass
, , _ldclass
_fdclass
Syntaxe
short __cdecl _dclass(double x);
short __cdecl _ldclass(long double x);
short __cdecl _fdclass(float x);
Parametry
x
Argument funkce s plovoucí desetinou čárkou
Poznámky
Tyto primitiva s plovoucí desetinou čárkou implementují verze makra fpclassify
CRT pro typy s plovoucí desetinou čárkou. Klasifikace argumentu x
se vrátí jako jedna z těchto konstant definovaných v math.h:
Hodnota | Popis |
---|---|
FP_NAN |
Tichý, signalizační nebo nedeterminující NaN |
FP_INFINITE |
Kladné nebo záporné nekonečno |
FP_NORMAL |
Kladná nebo záporná normalizovaná nenulová hodnota |
FP_SUBNORMAL |
Kladná nebo záporná subnormalizovaná hodnota |
FP_ZERO |
Kladná nebo záporná nulová hodnota |
Další podrobnosti získáte pomocí funkcí specifických _fpclassf
pro _fpclass
Microsoft. K přenositelnosti fpclassify
použijte makro nebo funkci.
_dsign
, , _ldsign
_fdsign
Syntaxe
int __cdecl _dsign(double x);
int __cdecl _ldsign(long double x);
int __cdecl _fdsign(float x);
Parametry
x
Argument funkce s plovoucí desetinou čárkou
Poznámky
Tyto primitiva s plovoucí deseti desetinou čárkou signbit
implementují makro nebo funkci v CRT. Vrátí nenulovou hodnotu, pokud je bit znaménka nastaven v significand (mantissa) argumentu x
. V opačném případě vrátí hodnotu 0, pokud není nastavený bit znaménka.
_dpcomp, _ldpcomp, _fdpcomp
Syntaxe
int __cdecl _dpcomp(double x, double y);
int __cdecl _ldpcomp(long double x, long double y);
int __cdecl _fdpcomp(float x, float y);
Parametry
x
, y
Argumenty funkce s plovoucí desetinou čárkou
Poznámky
Tyto primitivy s plovoucí desetinnou čárkou mají dva argumenty x
a y
vrátí hodnotu, která zobrazuje jejich vztah řazení vyjádřený jako bitové nebo tyto konstanty definované v math.h:
Hodnota | Popis |
---|---|
_FP_LT |
x lze považovat za menší než y |
_FP_EQ |
x lze považovat za rovnou y |
_FP_GT |
x lze považovat za větší než y |
Tyto primitivy implementují isgreater
rozhraní CRT , , isgreaterequal
islessequal
isless
, islessgreater
a isunordered
makra a funkce.
_dtest, _ldtest, _fdtest
Syntaxe
short __cdecl _dtest(double* px);
short __cdecl _ldtest(long double* px);
short __cdecl _fdtest(float* px);
Parametry
px
Ukazatel na argument s plovoucí desetinou čárkou
Poznámky
Tyto primitiva s plovoucí desetinou čárkou implementují verze C++ funkce fpclassify
CRT pro typy s plovoucí desetinou čárkou. x
Argument se vyhodnotí a klasifikace se vrátí jako jedna z těchto konstant definovaných v math.h:
Hodnota | Popis |
---|---|
FP_NAN |
Tichý, signalizační nebo nedeterminující NaN |
FP_INFINITE |
Kladné nebo záporné nekonečno |
FP_NORMAL |
Kladná nebo záporná normalizovaná nenulová hodnota |
FP_SUBNORMAL |
Kladná nebo záporná subnormalizovaná hodnota |
FP_ZERO |
Kladná nebo záporná nulová hodnota |
Další podrobnosti získáte pomocí funkcí specifických _fpclassf
pro _fpclass
Microsoft. fpclassify
Funkci použijte k přenositelnosti.
_d_int, _ld_int, _fd_int
Syntaxe
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);
Parametry
px
Ukazatel na argument s plovoucí desetinou čárkou
exp
Exponent jako celočíselný typ.
Poznámky
Tyto primitivy s plovoucí desetinnou čárkou převezmou ukazatel na hodnotu px
s plovoucí desetinnou čárkou a exponentální hodnotu exp
a odeberou desetinnou část hodnoty s plovoucí desetinnou čárkou pod danou exponent, pokud je to možné. Vrácená hodnota je výsledkem fpclassify
vstupní hodnoty, px
pokud se jedná o hodnotu NaN nebo nekonečno, a na výstupní hodnotě v px
opačném případě.
_dscale, _ldscale, _fdscale
Syntaxe
short __cdecl _dscale(double* px, long exp);
short __cdecl _ldscale(long double* px, long exp);
short __cdecl _fdscale(float* px, long exp);
Parametry
px
Ukazatel na argument s plovoucí desetinou čárkou
exp
Exponent jako celočíselný typ.
Poznámky
Tyto primitiva s plovoucí desetinnou čárkou přebírají ukazatel na hodnotu px
s plovoucí desetinnou čárkou a exponentní hodnotu exp
a pokud je to možné, škálujte hodnotu o px
2exp
. Vrácená hodnota je výsledkem fpclassify
vstupní hodnoty, px
pokud se jedná o hodnotu NaN nebo nekonečno, a na výstupní hodnotě v px
opačném případě. Pro přenositelnost, preferovat ldexp
, , ldexpf
ldexpl
funkce.
_dunscale, _ldunscale, _fdunscale
Syntaxe
short __cdecl _dunscale(short* pexp, double* px);
short __cdecl _ldunscale(short* pexp, long double* px);
short __cdecl _fdunscale(short* pexp, float* px);
Parametry
pexp
Ukazatel na exponent jako celočíselný typ.
px
Ukazatel na argument s plovoucí desetinou čárkou
Poznámky
Tyto primitivy s plovoucí desetinnou čárkou rozdělují hodnotu s plovoucí desetinnou čárkou, na kterou px
odkazuje, do significand (mantis) a exponentu ( pokud je to možné). Znak je škálován tak, aby absolutní hodnota byla větší nebo rovna 0,5 a menší než 1,0. Exponent je hodnota n
, kde původní hodnota s plovoucí desetinnou čárkou se rovná škálované znaménka a krát 2n. Tento celočíselná exponent n
je uložen v umístění, na které pexp
odkazuje . Vrácená hodnota je výsledkem fpclassify
vstupní hodnoty v px
případě, že se jedná o hodnotu NaN nebo nekonečno, a na výstupní hodnotě v opačném případě. Pro přenositelnost, preferovat frexp
, , frexpf
frexpl
funkce.
_dexp, _ldexp, _fdexp
Syntaxe
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);
Parametry
y
Argument funkce s plovoucí desetinou čárkou
px
Ukazatel na argument s plovoucí desetinou čárkou
exp
Exponent jako celočíselný typ.
Poznámky
Tyto primitiva s plovoucí desetinou čárkou vytvoří hodnotu s plovoucí desetinou čárkou v umístění, na které px
odkazuje rovna y
* 2exp. Vrácená hodnota je výsledkem fpclassify
vstupní hodnoty, y
pokud se jedná o hodnotu NaN nebo nekonečno, a na výstupní hodnotě v px
opačném případě. Pro přenositelnost, preferovat ldexp
, , ldexpf
ldexpl
funkce.
_dnorm, _fdnorm
Syntaxe
short __cdecl _dnorm(unsigned short* ps);
short __cdecl _fdnorm(unsigned short* ps);
Parametry
ps
Ukazatel na bitovou reprezentaci hodnoty s plovoucí desetinou čárkou vyjádřenou jako pole unsigned short
.
Poznámky
Tyto primitiva s plovoucí desetinnou čárkou normalizují zlomkovou část hodnoty s plovoucí desetinnou čárkou a upraví charakteristické nebo zkreslené exponenty tak, aby odpovídaly. Hodnota se předává jako bitové vyjádření typu s plovoucí desetinou čárkou převedené na pole unsigned short
prostřednictvím _double_val
, _ldouble_val
nebo _float_val
sjednocení typu punning deklarované v math.h. Vrácená hodnota je výsledkem fpclassify
vstupní hodnoty s plovoucí desetinnou čárkou, pokud se jedná o hodnotu NaN nebo nekonečno, a na výstupní hodnotě jinak.
_dpoly, _ldpoly, _fdpoly
Syntaxe
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);
Parametry
x
Argument funkce s plovoucí desetinou čárkou
table
Ukazatel na tabulku konstantních koeficientů pro polynom.
n
Pořadí polynomu, které se má vyhodnotit.
Poznámky
Tyto primitiva s plovoucí desetinnou čárkou vrátí vyhodnocení x
v polynomu pořadí n
, jehož koeficienty jsou reprezentovány odpovídajícími konstantními hodnotami v table
. Pokud table[0]
například = 3,0, table[1]
= 4,0, table[2]
= 5,0 a n
= 2 představuje polynom 5,0x2 + 4,0x + 3,0. Pokud je tento polynom vyhodnocen pro x
hodnotu 2,0, výsledek je 31,0. Tyto funkce se nepoužívají interně.
_dlog, _dlog, _dlog
Syntaxe
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);
Parametry
x
Argument funkce s plovoucí desetinou čárkou
base_flag
Příznak, který řídí základ, který se má použít, 0 pro základní e a nenulu pro základ 10.
Poznámky
Tyto primitivy s plovoucí desetinnou čárkou vrátí přirozený protokol x
(ln(x) nebo loge(x)), když base_flag
je 0. Vrátí základ protokolu 10 z x
, nebo log10(x), pokud base_flag
je nenulový. Tyto funkce se nepoužívají interně. Pro přenositelnost preferujte funkce , , , , , log10f
, a log10l
. log10
logl
logf
log
_dsin, _ldsin, _fdsin
Syntaxe
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);
Parametry
x
Argument funkce s plovoucí desetinou čárkou
quadrant
Kvadrantový posun 0, 1, 2 nebo 3 pro výrobu sin
, cos
, -sin
a -cos
výsledky.
Poznámky
Tyto primitivy s plovoucí desetina vrátí sinus x
posunu quadrant
modulo 4. V podstatě vrátí sinus, kosinus, -sinus a -kosinus, x
pokud quadrant
modulo 4 je 0, 1, 2 nebo 3, v uvedeném pořadí. Tyto funkce se nepoužívají interně. Pro přenositelnost, preferovat , , sinf
cos
sinl
, , cosf
funkce. cosl
sin
Požadavky
Hlavička: <math.h>
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Viz také
Podpora pro matematiku a plovoucí desetinou čárku
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