Floating-point extensions part 1: binary floating-point arithmetic
C言語の浮動小数点拡張 - 第1部: 2進浮動小数点演算、ISO/IEC TS 18661-1:2014は、ISO/IEC/IEEE 60559:2011(IEEE-754の現行改訂版)で推奨される、C標準ライブラリの以下の新しい構成要素を定義しています。
|
__STDC_IEC_60559_BFP__
|
long
型の整数定数で値は
201ymmL
、
__STDC_IEC_559__
を置き換える
(マクロ定数) |
|
__STDC_IEC_60559_COMPLEX__
|
long
型の整数定数で値は
201ymmL
、
__STDC_IEC_559_COMPLEX__
を置き換える
(マクロ定数) |
|
ヘッダーで定義
<limits.h>
|
|
|
CHAR_WIDTH SCHAR_WIDTH UCHAR_WIDTH
SHRT_WIDTH USHRT_WIDTH
INT_WIDTH UINT_WIDTH
LONG_WIDTH ULONG_WIDTH
LLONG_WIDTH ULLONG_WIDTH
(FP Ext 1 TS)
|
対応する型のビット幅
(マクロ定数) |
|
ヘッダーで定義
<float.h>
|
|
|
(FP Ext 1 TS)
|
すべてのサポートされているバイナリ浮動小数点型と、最大CR_DECIMAL_DIG桁の有効十進数字を持つ文字シーケンスとの間の変換は正しく丸められる(これは少なくともDECIMAL_DIG + 3である)
(マクロ定数) |
|
ヘッダーで定義
<fenv.h>
|
|
|
femode_t
(FP Ext 1 TS)
|
実装によってサポートされる動的浮動小数点制御モードの集合、動的な丸め方向モードを含む
(typedef) |
|
FE_DFL_MODE
(FP Ext 1 TS)
|
デフォルトのfemode_tへのポインタ
(マクロ定数) |
|
FE_SNANS_ALWAYS_SIGNAL
(FP Ext 1 TS)
|
sNaN引数がqNaNを抑制する関数(
hypot
や
fmax
など)でFE_INVALIDを発生させ、qNaNを返す場合に定義される(整数定数1として)
(マクロ定数) |
|
(FP Ext 1 TS)
|
指定された浮動小数点例外フラグを設定するが、それらを発生させることで生じる副作用を引き起こさない
(関数) |
|
(FP Ext 1 TS)
|
指定されたフラグが浮動小数点例外フラグの保存された表現に含まれているかどうかをテストする
(関数) |
|
(FP Ext 1 TS)
|
実装のすべての動的浮動小数点制御モードをまとめて取得および設定する
(関数) |
|
ヘッダーで定義
<stdint.h>
|
|
|
INTn_WIDTH UINTn_WIDTH
INT_LEASTn_WIDTH UINT_LEASTn_WIDTH
INT_FASTn_WIDTH UINT_FASTn_WIDTH
INTPTR_WIDTH UINTPTR_WIDTH
INTMAX_WIDTH UINTMAX_WIDTH
PTRDIFF_WIDTH
SIG_ATOMIC_WIDTH
SIZE_WIDTH
WCHAR_WIDTH WINT_WIDTH
(FP Ext 1 TS)
|
対応する型のビット幅
(マクロ定数) |
|
ヘッダーで定義
<stdlib.h>
|
|
|
(FP Ext 1 TS)
|
単一の浮動小数点数を指定されたsnprintfフォーマットを使用して文字列に変換する
(関数) |
|
ヘッダーで定義
<math.h>
|
|
|
FP_INT_UPWARD
FP_INT_DOWNWARD
FP_INT_TOWARDZERO
FP_INT_TONEARESTFROMZERO
FP_INT_TONEAREST
(FP Ext 1 TS)
|
ceil、floor、trunc、round、roundeven関数の丸め方向。fromfpファミリー関数での使用に適する
(マクロ定数) |
|
FP_LLOGB0
(FP Ext 1 TS)
|
llogbが引数ゼロの場合に返す値
(マクロ定数) |
|
FP_LLOGBNAN
(FP Ext 1 TS)
|
llogbが引数NaNの場合に返す値
(マクロ定数) |
|
(FP Ext 1 TS)
|
float、double、long double それぞれのシグナリングNaNを表す
(マクロ定数) |
|
FP_FAST_FADD FP_FAST_FADDL FP_FAST_DADDL
FP_FAST_FSUB FP_FAST_FSUBL FP_FAST_DSUBL
FP_STAST_FMUL FP_FAST_FMULL FP_FAST_DMULL
FP_FAST_FDIV FP_FAST_FDIVL FP_FAST_DDIVL
FP_FAST_FFMA FP_FAST_FFMAL FP_FAST_DFMAL
FP_FAST_FSQRT FP_FAST_FSQRTL FP_FAST_DSQRTL
(FP Ext 1 TS)
|
定義されている場合、対応する関数がより大きな型での同等の関数を実行し、その後ターゲット型へのキャストを行うよりも高速に実行されることを示す
(マクロ定数) |
|
iseqsig
(FP Ext 1 TS)
|
(関数マクロ) |
|
iscanonical
(FP Ext 1 TS)
|
浮動小数点値が正規表現であるかどうかをテストする
(関数マクロ) |
|
issignaling
(FP Ext 1 TS)
|
浮動小数点値がシグナリングNaNかどうかをテストする
(関数マクロ) |
|
issubnormal
(FP Ext 1 TS)
|
浮動小数点値が非正規化数かどうかをテストする
(関数マクロ) |
|
iszero
(FP Ext 1 TS)
|
浮動小数点値がゼロ(正、負、符号なし)であるかどうかをテストする
(関数マクロ) |
|
(FP Ext 1 TS)
|
指定された丸め方向を使用して符号付き整数に丸める
(関数) |
|
(FP Ext 1 TS)
|
指定された丸め方向を使用して符号なし整数に丸める
(関数) |
|
(FP Ext 1 TS)
|
指定された丸め方向を使用して符号付き整数に丸め、不正確さを報告する
(関数) |
|
(FP Ext 1 TS)
|
指定された丸め方向を使用して符号なし整数に丸め、不正確さを報告する
(関数) |
|
(FP Ext 1 TS)
|
最も近い値に丸め、中間値は偶数方向に丸める
(関数) |
|
(FP Ext 1 TS)
|
logb
と同等だが、戻り値の型が
long
である
(関数) |
|
(FP Ext 1 TS)
|
引数のうち絶対値が最大の値を返す
(関数) |
|
(FP Ext 1 TS)
|
引数の最小絶対値を返す
(関数) |
|
(FP Ext 1 TS)
|
次に大きい表現可能な浮動小数点値を返す
(関数) |
|
(FP Ext 1 TS)
|
次に小さい表現可能な浮動小数点値を返す
(関数) |
|
(FP Ext 1 TS)
|
無限精度で計算し、一度だけ対象型に丸めた x+y を計算する
(関数) |
|
(FP Ext 1 TS)
|
無限精度で計算し、一度だけ対象型に丸めた x-y を計算する
(関数) |
|
(FP Ext 1 TS)
|
無限精度で計算し、ターゲット型に一度だけ丸めた x*y を計算する
(関数) |
|
(FP Ext 1 TS)
|
無限精度で計算し、ターゲット型に一度だけ丸めた x/y を計算する
(関数) |
|
(FP Ext 1 TS)
|
無限精度で計算し、一度だけ対象の型に丸めた場合と同じ値を
fma
として計算する
(関数) |
|
(FP Ext 1 TS)
|
無限精度で計算し、一度だけ対象の型に丸めた場合の
sqrt
と同じ値を計算する
(関数) |
|
(FP Ext 1 TS)
|
ISO 60559 全順序関係を使用して2つの浮動小数点値を順序付けする
(関数) |
|
(FP Ext 1 TS)
|
2つの浮動小数点値の大きさをISO 60559の全順序関係を使用して順序付けする
(関数) |
|
(FP Ext 1 TS)
|
指定された浮動小数点値のISO 60559正規バイナリエンコーディングを取得する
(関数) |
|
(FP Ext 1 TS)
|
指定されたNaN値からペイロードを抽出する
(関数) |
|
(FP Ext 1 TS)
|
指定されたペイロードを持つquiet NaNを生成する
(関数) |
|
(FP Ext 1 TS)
|
指定されたペイロードを持つシグナリングNaNを生成する
(関数) |
|
ヘッダーで定義
<tgmath.h>
|
|
|
roundeven
(FP Ext 1 TS)
|
roundevenのジェネリックオーバーロード
roundeven
(関数) |
|
llogb
(FP Ext 1 TS)
|
llogbのジェネリックオーバーロード
llogb
(関数) |
|
fmaxmag
(FP Ext 1 TS)
|
fmaxmagのジェネリックオーバーロード
fmaxmag
(関数) |
|
fminmag
(FP Ext 1 TS)
|
fminmagのジェネリックオーバーロード
fminmag
(関数) |
|
nextup
(FP Ext 1 TS)
|
nextupのジェネリックオーバーロード
nextup
(関数) |
|
nextdown
(FP Ext 1 TS)
|
nextdown
のジェネリックオーバーロード
(関数) |
|
fromfp
(FP Ext 1 TS)
|
fromfpのジェネリックオーバーロード
fromfp
(関数) |
|
ufromfp
(FP Ext 1 TS)
|
ufromfpのジェネリックオーバーロード
ufromfp
(関数) |
|
fromfpx
(FP Ext 1 TS)
|
fromfpxのジェネリックオーバーロード
fromfpx
(関数) |
|
ufromfpx
(FP Ext 1 TS)
|
ufromfpxのジェネリックオーバーロード
ufromfpx
(関数) |
|
nextdown
(FP Ext 1 TS)
|
nextdown
のジェネリックオーバーロード
(関数) |
|
totalorder
(FP Ext 1 TS)
|
totalorderのジェネリックオーバーロード
totalorder
(関数) |
|
totalordermag
(FP Ext 1 TS)
|
totalordermagのジェネリックオーバーロード
totalordermag
(関数) |
|
fadd
(FP Ext 1 TS)
|
faddのジェネリックオーバーロード
fadd
(関数) |
|
dadd
(FP Ext 1 TS)
|
dadd
のジェネリックオーバーロード
(関数) |
|
fsub
(FP Ext 1 TS)
|
fsubのジェネリックオーバーロード
fsub
(関数) |
|
dsub
(FP Ext 1 TS)
|
dsubのジェネリックオーバーロード
dsub
(関数) |
|
fmul
(FP Ext 1 TS)
|
fmul
のジェネリックオーバーロード
(関数) |
|
dmul
(FP Ext 1 TS)
|
dmul
のジェネリックオーバーロード
(関数) |
|
fdiv
(FP Ext 1 TS)
|
fdivのジェネリックオーバーロード
fdiv
(関数) |
|
ddiv
(FP Ext 1 TS)
|
ddiv
のジェネリックオーバーロード
(関数) |
|
ffma
(FP Ext 1 TS)
|
ffma
のジェネリックオーバーロード
(関数) |
|
dfma
(FP Ext 1 TS)
|
dfma
の汎用オーバーロード
(関数) |
|
fsqrt
(FP Ext 1 TS)
|
fsqrt
の汎用オーバーロード
(関数) |
|
dsqrt
(FP Ext 1 TS)
|
dsqrt
のジェネリックオーバーロード
(関数) |
注記
標準Cマクロ __STDC_IEC_559__ および __STDC_IEC_559_COMPLEX__ は、この技術仕様によって廃止予定となりました。
この拡張によってCライブラリに追加されるすべての関数とマクロは、 マクロ __STDC_WANT_IEC_60559_BFP_EXT__ が対応するヘッダーがインクルードされる前に定義されている場合にのみ宣言されます。
標準ライブラリへの追加に加えて、ISO/IEC TS 18661-1:2014はコア言語にもいくつかの変更を加えており、特に浮動小数点制御を静的(新しい #pragma STDC FENV_ROUND で制御)と動的( fesetround で制御)に分割しています。ほとんどのmath.h関数は、静的丸めモードが設定されている場合、動的丸めモードよりも優先します。
|
このセクションは不完全です
理由:プラグマページに追加するか、ここでプラグマを完全に記述すべきか? |