名前空間
変種
操作

std::numeric_limits::has_denorm_loss

提供: cppreference.com
 
 
 
型サポート
型プロトタイプ
(C++11)
(C++11)
(C++14)
(C++11)
(C++11)(C++20以前)
(C++11)(C++20で非推奨)
(C++11)
型特性定数
メタ関数
(C++17)
エンディアン
(C++20)
サポートされている操作
関係と性質の問い合わせ
(C++11)
(C++11)
型変更
(C++11)(C++11)(C++11)
型変換
(C++11)
(C++11)
(C++17)
(C++11)(C++20以前)(C++17)
 
 
static const bool has_denorm_loss;
(C++11以前)
static constexpr bool has_denorm_loss;
(C++11およびそれ以降)

std::numeric_limits<T>::has_denorm_loss の値は、非正規化数を作成したときの精度の損失を不正確な結果としてではなく非正規化損失 (ノートを参照) として検出するすべての浮動小数点型 T に対して true になります。

目次

[編集] 標準の特殊化

T std::numeric_limits<T>::has_denorm_loss の値
/* 非特殊化 */ false
bool false
char false
signed char false
unsigned char false
wchar_t false
char16_t false
char32_t false
short false
unsigned short false
int false
unsigned int false
long false
unsigned long false
long long false
unsigned long long false
float 処理系定義
double 処理系定義
long double 処理系定義

[編集] ノート

標準準拠の IEEE 754 浮動小数点の非正規化数の実装は、そのような数値の生成が発生した場合、それに紐付く正確さの損失を検出することが要求されます。 これは2つの異なる方法のいずれかで行われます。

1) 非正規化損失: 生成された結果がもし指数の範囲が無制限であったならば計算されたであろう結果と異なる。
2) 不正確な結果: 生成された結果がもし指数の範囲と精度が無制限であったならば計算されたであろう結果と異なる。

非正規化損失メカニズムの実装は存在せず (正確さの損失は丸めの後に不正確な結果として検出されます)、このオプションは IEEE 754 標準の2008年の改定で削除されました。

libstdc++, libc++, libCstd および stlport4 はすべての浮動小数点型に対してこの定数を false として定義しています。 Microsoft Visual Studio はすべての浮動小数点型に対してこの定数を true として定義しています。

あらゆる浮動小数点の計算と同様に、正確さの損失は FE_INEXACT を発生させる場合があります。

[編集]

[編集] 関連項目

丸めの前に小ささを検出する浮動小数点型を識別します
(パブリック静的メンバ定数) [edit]
[static]
浮動小数点型によって使用される非正規化形式を識別します
(パブリック静的メンバ定数) [edit]