浮動小数点プリミティブ

標準 C ランタイム ライブラリ (CRT) の浮動小数点関数を実装するために使用される、Microsoft 固有のプリミティブ関数。 完全を期すためにここに記載されていますが、使用はお勧めしません。 これらの関数には有効桁数、例外処理、IEEE-754 の動作への準拠に関する問題があることが認識されているため、未使用として記載されているものもあります。 下位互換性のためにのみライブラリに存在します。 正しい動作、移植性、標準への準拠のためには、これらの関数ではなく標準の浮動小数点関数を使用することをお勧めします。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください

_dclass, _ldclass, _fdclass

構文

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

パラメーター

x
浮動小数点関数の引数。

解説

これらの浮動小数点プリミティブは、浮動小数点型の CRT マクロ fpclassify の C バージョンを実装します。 引数 x の分類は、math.h で定義されている次のいずれかの定数として返されます。

Value 説明
FP_NAN クワイエット型、シグナル型、または不確定の NaN
FP_INFINITE 正または負の無限大
FP_NORMAL 正規化された正または負の 0 以外の値
FP_SUBNORMAL 正または負の非正規の (正規化されない) 値
FP_ZERO 正または負の 0 値

詳細については、Microsoft 固有_fpclass_fpclassfの関数を使用できます。 移植性のために fpclassify マクロまたは関数を使用します。

_dsign, _ldsign, _fdsign

構文

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

パラメーター

x
浮動小数点関数の引数。

解説

これらの浮動小数点プリミティブは、CRT に signbit マクロまたは関数を実装します。 引数 xの仮数 (仮数) に符号ビットが設定されている場合は、0 以外の値が返されます。 それ以外の場合、符号ビットが設定されていない場合は 0 が返されます。

_dpcomp、_ldpcomp、_fdpcomp

構文

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

パラメーター

x, y
浮動小数点関数の引数。

解説

これらの浮動小数点プリミティブは、2 つの引数を受け取り、 xymath.h で定義されたビットごとの定数またはこれらの定数の順序関係を示す値を返します。

Value 説明
_FP_LT x より小さいと見なすことができます y
_FP_EQ x と等しいと見なすことができます y
_FP_GT x より大きいと見なすことができます y

これらのプリミティブは、CRT に isgreater、、 isgreaterequalisless、、 islessequalislessgreaterおよび isunordered マクロと関数を実装します。

_dtest、_ldtest、_fdtest

構文

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

パラメーター

px
浮動小数点引数へのポインター。

解説

これらの浮動小数点プリミティブは、浮動小数点型の CRT 関数 fpclassify の C++ バージョンを実装します。 引数 x が評価され、math.h で定義されている次のいずれかの定数として分類が返されます。

Value 説明
FP_NAN クワイエット型、シグナル型、または不確定の NaN
FP_INFINITE 正または負の無限大
FP_NORMAL 正規化された正または負の 0 以外の値
FP_SUBNORMAL 正または負の非正規の (正規化されない) 値
FP_ZERO 正または負の 0 値

詳細については、Microsoft 固有_fpclass_fpclassfの関数を使用できます。 移植性のためにこの fpclassify 関数を使用します。

_d_int、_ld_int、_fd_int

構文

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

パラメーター

px
浮動小数点引数へのポインター。

exp
整数型の指数。

解説

これらの浮動小数点プリミティブは、浮動小数点値と指数値pxexpへのポインターを受け取り、可能であれば、指定された指数より下の浮動小数点値の小数部を削除します。 返される値は、入力値pxが NaN または無限大の場合の結果であり、それ以外の場合は出力値のpx結果fpclassifyです。

_dscale、_ldscale、_fdscale

構文

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

パラメーター

px
浮動小数点引数へのポインター。

exp
整数型の指数。

解説

これらの浮動小数点プリミティブは、浮動小数点値と指数値pxexpへのポインターを受け取り、可能な場合は値を px 2exp でスケーリングします。 返される値は、入力値pxが NaN または無限大の場合の結果であり、それ以外の場合は出力値のpx結果fpclassifyです。 移植性を高める場合は、,ldexplldexpf関数を使用します。ldexp

_dunscale、_ldunscale、_fdunscale

構文

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

パラメーター

pexp
整数型の指数へのポインター。

px
浮動小数点引数へのポインター。

解説

これらの浮動小数点プリミティブは、可能であれば、指す px 浮動小数点値を仮数 (仮数) と指数に分割します。 仮数部は、絶対値が 0.5 以上 1.0 未満となるようにスケーリングされます。 指数は値 nです。元の浮動小数点値は、小数点以下桁数が 2n の場合と等しくなります。 この整数指数 n は、次の値が指す位置に pexp格納されます。 返される値は、入力値が NaN または無限大の場合は入力値px、それ以外の場合は出力値の結果fpclassifyです。 移植性を高める場合は、,frexplfrexpf関数を使用します。frexp

_dexp、_ldexp、_fdexp

構文

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

パラメーター

y
浮動小数点関数の引数。

px
浮動小数点引数へのポインター。

exp
整数型の指数。

解説

これらの浮動小数点プリミティブは、* 2exp と等しい位置にpx浮動小数点値をy構築します。 返される値は、入力値yが NaN または無限大の場合の結果であり、それ以外の場合は出力値のpx結果fpclassifyです。 移植性を高める場合は、,ldexplldexpf関数を使用します。ldexp

_dnorm、_fdnorm

構文

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

パラメーター

ps
unsigned short の配列として表される浮動小数点値のビットごとの表現へのポインター。

解説

これらの浮動小数点プリミティブでは、アンダーフローした浮動小数点値の小数部を正規化し、"特性" (偏った指数) が一致するように調整します。 この値は、math.h で宣言された 、_ldouble_valまたは_float_val型区切り和集合を介して_double_val配列に変換された浮動小数点型のunsigned shortビットごとの表現として渡されます。 戻り値は、入力浮動小数点値が NaN または無限大の場合は結果であり、それ以外の場合は出力値の結果 fpclassify です。

_dpoly、_ldpoly、_fdpoly

構文

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

パラメーター

x
浮動小数点関数の引数。

table
多項式の定数係数のテーブルへのポインター。

n
評価する多項式の次数。

解説

これらの浮動小数点プリミティブは、係数が対応する定数値で表される順序nの多項式でのtable評価xを返します。 たとえば、= 3.0、 table[1] = 4.0、 table[2] = 5.0、および n = 2 の場合table[0]、多項式 5.0x2 + 4.0x + 3.0 を表します。 この多項式が 2.0 で評価された x 場合、結果は 31.0 になります。 これらの関数は内部的には使用されません。

_dlog、_dlog、_dlog

構文

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

パラメーター

x
浮動小数点関数の引数。

base_flag
使用する底を制御するフラグ。底が e の場合は 0、底が 10 の場合は 0 以外。

解説

これらの浮動小数点プリミティブは、(ln(x) または log e(x)) のx自然対数(0 の場合base_flag) を返します。 0 以外の場合base_flagは、ログ 10 のx底 10 またはログ10 (x) が返されます。 これらの関数は内部的には使用されません。 移植性を高める場合は、関数、、、logllog10log10fを使用しますlog10llogflog

_dsin、_ldsin、_fdsin

構文

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

パラメーター

x
浮動小数点関数の引数。

quadrant
sincos-sin-cos の結果を生成するために使用する 0、1、2、または 3 の象限のオフセット。

解説

これらの浮動小数点プリミティブは、剰余 4 でオフセットの x サインを quadrant 返します。 実質的に、剰余 4 が 0、1、2、または 3 の場合quadrantxサイン、コサイン、-サイン、-コサインをそれぞれ返します。 これらの関数は内部的には使用されません。 移植性のために、, , sinf, sinl, cos, coslcosf 関数をsin優先します。

必要条件

ヘッダー: <math.h>

互換性の詳細については、「 Compatibility」を参照してください。

関連項目

数学と浮動小数点のサポート
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