Oracle® Solaris Studio 12.4: 数値計算ガイド

印刷ビューの終了

更新: 2015 年 1 月
 
 

2.3.1 アンダーフローしきい値

Table 2–11 は、単精度、倍精度、および拡張倍精度でのアンダーフローしきい値を示しています。

表 2-11  アンダーフローしきい値
宛先の精度
アンダーフローしきい値
単精度
最小の正規数
最大の非正規数
1.17549435e–38
1.17549421e–38
倍精度
最小の正規数
最大の非正規数
2.2250738585072014e–308
2.2250738585072009e–308
4 倍精度
最小の正規数
最大の非正規数
3.3621031431120935062626778173217526e–4932
3.3621031431120935062626778173217520e–4932
拡張倍精度 (x86)
最小の正規数
最大の非正規数
3.36210314311209350626e–4932
3.36210314311209350590e–4932

正の非正規数は、最小の正規数と 0 の間にある数値です。 最小の正規数に近い 2 つの (正の) 非常に小さい数値を引くと、非正規数が生成される可能性があります。または、最小の正の正規数を 2 で割ると、非正規数の結果が生成されます。

非正規数の存在によって、小さい数値が関係する浮動小数点演算により高い精度が提供されますが、非正規数自体の精度のビット数は正規数より少なくなります。数学的に正しい結果が最小の正の正規数より小さい大きさを持つときに (0 の答えを返すのではなく) 非正規数を生成する方法は、段階的アンダーフローと呼ばれます。

このようなアンダーフローの結果を処理するための方法は、ほかにもいくつかあります。以前は一般的であった 1 つの方法として、これらの結果を 0 にフラッシュする方法があります。 この方法は突発的アンダーフローと呼ばれ、IEEE 規格が現れる前はほとんどのメインフレーム上でデフォルトでした。

IEEE 規格 754 の草案を作成した数学者やコンピュータ設計者は、数学的に堅牢な解決方法への望みと、効率的に実装できる標準を作成する必要性のバランスをとりながら、いくつかの代替方法を検討しました。