浮動小数点プリミティブ
標準 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 つの引数を受け取り、 x
y
math.h で定義されたビットごとの定数またはこれらの定数の順序関係を示す値を返します。
Value | 説明 |
---|---|
_FP_LT |
x より小さいと見なすことができます y |
_FP_EQ |
x と等しいと見なすことができます y |
_FP_GT |
x より大きいと見なすことができます y |
これらのプリミティブは、CRT に isgreater
、、 isgreaterequal
、 isless
、、 islessequal
、 islessgreater
および 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
整数型の指数。
解説
これらの浮動小数点プリミティブは、浮動小数点値と指数値px
exp
へのポインターを受け取り、可能であれば、指定された指数より下の浮動小数点値の小数部を削除します。 返される値は、入力値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
整数型の指数。
解説
これらの浮動小数点プリミティブは、浮動小数点値と指数値px
exp
へのポインターを受け取り、可能な場合は値を px
2exp
でスケーリングします。 返される値は、入力値px
が NaN または無限大の場合の結果であり、それ以外の場合は出力値のpx
結果fpclassify
です。 移植性を高める場合は、,ldexpl
ldexpf
関数を使用します。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
です。 移植性を高める場合は、,frexpl
frexpf
関数を使用します。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
です。 移植性を高める場合は、,ldexpl
ldexpf
関数を使用します。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) が返されます。 これらの関数は内部的には使用されません。 移植性を高める場合は、関数、、、logl
、log10
、log10f
を使用しますlog10l
。 logf
log
_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
sin
、cos
、-sin
、-cos
の結果を生成するために使用する 0、1、2、または 3 の象限のオフセット。
解説
これらの浮動小数点プリミティブは、剰余 4 でオフセットの x
サインを quadrant
返します。 実質的に、剰余 4 が 0、1、2、または 3 の場合quadrant
のx
サイン、コサイン、-サイン、-コサインをそれぞれ返します。 これらの関数は内部的には使用されません。 移植性のために、, , sinf
, sinl
, cos
, cosl
cosf
関数を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
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示