Udostępnij przez


Zmiennoprzecinkowe typy pierwotne

Specyficzne dla firmy Microsoft funkcje pierwotne, które są używane do implementowania niektórych standardowych funkcji biblioteki środowiska uruchomieniowego języka C (CRT) zmiennoprzecinkowych. Są one udokumentowane tutaj w celu ukończenia, ale nie są zalecane do użycia. Niektóre z tych funkcji są oznaczone jako nieużywane, ponieważ znane są problemy z precyzją, obsługą wyjątków i zgodnością z zachowaniem IEEE-754. Istnieją one w bibliotece tylko w celu zapewnienia zgodności z poprzednimi wersjami. Aby uzyskać poprawne zachowanie, przenośność i zgodność ze standardami, preferuj standardowe funkcje zmiennoprzecinkowe dla tych funkcji.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

_dclass, , _ldclass_fdclass

Składnia

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

Parametry

x
Argument funkcji zmiennoprzecinkowych.

Uwagi

Te zmiennoprzecinkowe typy pierwotne implementują wersje C makra fpclassify CRT dla typów zmiennoprzecinkowych. Klasyfikacja argumentu x jest zwracana jako jedna z tych stałych, zdefiniowana w pliku math.h:

Wartość Opis
FP_NAN Cichy, sygnalizujący lub nieokreślony NaN
FP_INFINITE Nieskończoność dodatnia lub ujemna
FP_NORMAL Dodatnia lub ujemna znormalizowana wartość niezerowa
FP_SUBNORMAL Wartość dodatnia lub ujemna (zdenormalizowana)
FP_ZERO Wartość dodatnia lub ujemna zero

Aby uzyskać więcej szczegółów, możesz użyć funkcji specyficznych dla _fpclass_fpclassf firmy Microsoft. Użyj makra fpclassify lub funkcji do przenoszenia.

_dsign, , _ldsign_fdsign

Składnia

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

Parametry

x
Argument funkcji zmiennoprzecinkowych.

Uwagi

Te zmiennoprzecinkowe elementy pierwotne implementują signbit makro lub funkcję w CRT. Zwracają wartość inną niż zero, jeśli bit znaku jest ustawiony w znaku znaku (mantissa) argumentu x. W przeciwnym razie zwracają wartość 0, jeśli bit znaku nie jest ustawiony.

_dpcomp, _ldpcomp, _fdpcomp

Składnia

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 funkcji zmiennoprzecinkowych.

Uwagi

Te wartości pierwotne zmiennoprzecinkowe przyjmują dwa argumenty i x y, i zwracają wartość, która pokazuje relację porządkowania, wyrażoną jako bitowe lub te stałe zdefiniowane w funkcji math.h:

Wartość Opis
_FP_LT x można uznać za mniejsze niż y
_FP_EQ x można uznać za równe y
_FP_GT x można uznać za większe niż y

Te elementy pierwotne implementują isgreaterfunkcje , , isgreaterequal, islessequalisless, islessgreateri isunordered w języku CRT.

_dtest, _ldtest, _fdtest

Składnia

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

Parametry

px
Wskaźnik do argumentu zmiennoprzecinkowego.

Uwagi

Te zmiennoprzecinkowe typy pierwotne implementują wersje C++ funkcji fpclassify CRT dla typów zmiennoprzecinkowych. Argument x jest obliczany, a klasyfikacja jest zwracana jako jedna z tych stałych, zdefiniowana w pliku math.h:

Wartość Opis
FP_NAN Cichy, sygnalizujący lub nieokreślony NaN
FP_INFINITE Nieskończoność dodatnia lub ujemna
FP_NORMAL Dodatnia lub ujemna znormalizowana wartość niezerowa
FP_SUBNORMAL Wartość dodatnia lub ujemna (zdenormalizowana)
FP_ZERO Wartość dodatnia lub ujemna zero

Aby uzyskać więcej szczegółów, możesz użyć funkcji specyficznych dla _fpclass_fpclassf firmy Microsoft. fpclassify Użyj funkcji w celu przenoszenia.

_d_int, _ld_int, _fd_int

Składnia

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
Wskaźnik do argumentu zmiennoprzecinkowego.

exp
Wykładnik jako typ całkowity.

Uwagi

Te wartości pierwotne zmiennoprzecinkowe przyjmują wskaźnik do wartości px zmiennoprzecinkowej i wartości wykładniczej , a jeśli to możliwe, usuń część ułamkową wartości expzmiennoprzecinkowej poniżej danego wykładnika. Zwracana wartość jest wynikiem fpclassify wartości wejściowej, px jeśli jest to wartość NaN lub nieskończoność, a wartość wyjściowa w px przeciwnym razie.

_dscale, _ldscale, _fdscale

Składnia

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

Parametry

px
Wskaźnik do argumentu zmiennoprzecinkowego.

exp
Wykładnik jako typ całkowity.

Uwagi

Te wartości pierwotne zmiennoprzecinkowe przyjmują wskaźnik do wartości px zmiennoprzecinkowej i wartości expwykładniczej, a jeśli to możliwe, przeskaluj wartość do px 2exp. Zwracana wartość jest wynikiem fpclassify wartości wejściowej, px jeśli jest to wartość NaN lub nieskończoność, a wartość wyjściowa w px przeciwnym razie. W przypadku przenośności preferuj ldexpfunkcje , . ldexpfldexpl

_dunscale, _ldunscale, _fdunscale

Składnia

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

Parametry

pexp
Wskaźnik do wykładnika jako typu całkowitego.

px
Wskaźnik do argumentu zmiennoprzecinkowego.

Uwagi

Te wartości pierwotne zmiennoprzecinkowe dzielą wartość zmiennoprzecinkową wskazywaną przez px znakową (mantissa) i wykładnik, jeśli to możliwe. Znak jest skalowany w taki sposób, że wartość bezwzględna jest większa lub równa 0,5 i mniejsza niż 1,0. Wykładnik jest wartością n, gdzie oryginalna wartość zmiennoprzecinkowa jest równa 2n. Ten wykładnik n liczby całkowitej jest przechowywany w lokalizacji wskazywane przez pexp. Zwracana wartość jest wynikiem fpclassify wartości wejściowej, px jeśli jest to wartość NaN lub nieskończoność, a w przeciwnym razie wartość wyjściowa. W przypadku przenośności preferuj frexpfunkcje , . frexpffrexpl

_dexp, _ldexp, _fdexp

Składnia

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 funkcji zmiennoprzecinkowych.

px
Wskaźnik do argumentu zmiennoprzecinkowego.

exp
Wykładnik jako typ całkowity.

Uwagi

Te zmiennoprzecinkowe elementy pierwotne skonstruuje wartość zmiennoprzecinkową w lokalizacji wskazywanej przez px wartość równą y * 2exp. Zwracana wartość jest wynikiem fpclassify wartości wejściowej, y jeśli jest to wartość NaN lub nieskończoność, a wartość wyjściowa w px przeciwnym razie. W przypadku przenośności preferuj ldexpfunkcje , . ldexpfldexpl

_dnorm, _fdnorm

Składnia

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

Parametry

ps
Wskaźnik do bitowej reprezentacji wartości zmiennoprzecinkowej wyrażonej jako tablica unsigned short.

Uwagi

Te wartości pierwotne zmiennoprzecinkowe normalizują część ułamkową niedopływanej wartości zmiennoprzecinkowej i dopasowują charakterystykę lub stronniczy wykładnik, aby były zgodne. Wartość jest przekazywana jako bitowa reprezentacja typu zmiennoprzecinkowego przekonwertowana na tablicę unsigned short typu _double_val, _ldouble_vallub _float_val typu kwantowania zadeklarowanego w pliku math.h. Wartość zwracana jest wynikiem fpclassify wartości wejściowej zmiennoprzecinkowej, jeśli jest to wartość NaN lub nieskończoność, a w przeciwnym razie wartość wyjściowa.

_dpoly, _ldpoly, _fdpoly

Składnia

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 funkcji zmiennoprzecinkowych.

table
Wskaźnik do tabeli stałych współczynników dla wielomianu.

n
Kolejność wielomianu do obliczenia.

Uwagi

Te zmiennoprzecinkowe elementy pierwotne zwracają ocenę x w wielomianie kolejności n , której współczynniki są reprezentowane przez odpowiadające wartości stałe w elem table. Na przykład jeśli table[0] = 3.0, table[1] = 4.0, table[2] = 5.0 i n = 2, reprezentuje wielomian 5.0x2 + 4.0x + 3.0. Jeśli ten wielomian jest obliczany dla x wartości 2,0, wynik wynosi 31,0. Te funkcje nie są używane wewnętrznie.

_dlog, _dlog, _dlog

Składnia

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 funkcji zmiennoprzecinkowych.

base_flag
Flaga sterujący bazą do użycia, 0 dla wartości base e i non-zero dla wartości base 10.

Uwagi

Te zmiennoprzecinkowe elementy pierwotne zwracają dziennik x naturalny (ln(x) lub loge(x)), gdy base_flag ma wartość 0. Zwracają one bazę dziennika 10 z x, lub dziennika10(x), gdy base_flag nie ma wartości zero. Te funkcje nie są używane wewnętrznie. W przypadku przenośności preferuj funkcje , , logf, logllog10, log10fi log10l.log

_dsin, _ldsin, _fdsin

Składnia

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 funkcji zmiennoprzecinkowych.

quadrant
Przesunięcie ćwiartki 0, 1, 2 lub 3 do użycia w celu wygenerowania sinwyników , cos, -sini -cos .

Uwagi

Te zmienne pierwotne zwracają sinus x przesunięcia przez quadrant modulo 4. Skutecznie zwracają sinus, cosinus, -sinus i -cosinus x , gdy quadrant modulo 4 wynosi odpowiednio 0, 1, 2 lub 3. Te funkcje nie są używane wewnętrznie. W przypadku przenośności preferuj sinfunkcje , , sinfsinl, cos, cosf, . cosl

Wymagania

Nagłówek: <math.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Zobacz też

Obsługa obliczeń matematycznych i zmiennoprzecinkowych
fpclassify
_fpclass, _fpclassf
isfinite, , _finite_finitef
isinf
isnan, , _isnan_isnanf
isnormal
cos, , cosfcosl
frexp, , frexpffrexpl
ldexp, , ldexpfldexpl
log, , logf, logl, log10, , log10flog10l
sin, , sinfsinl