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

印刷ビューの終了

更新: 2015 年 1 月
 
 

2.3.3 段階的アンダーフローを使用する理由

非正規数の目的は、ほかの一部の演算モデルとは異なり、アンダーフローやオーバーフローを完全に回避することではありません。代わりに、非正規数は、さまざまな計算 (通常、乗算のあとの加算) での問題の原因としてのアンダーフローを排除します。詳細は、James Demmel 著『Underflow and the Reliability of Numerical Software』および S. Linnainmaa 著『Combating the Effects of Underflow and Overflow in Determining Real Roots of Polynomials』を参照してください。

演算に非正規数が存在するため、以降の加算や減算で、正確性の損失を招きかねない、トラップされないアンダーフローが発生することはなくなります。xy が 2 倍以内に収まっている場合は、xy で誤差は発生しません。これは、アルゴリズム内の重要な場所で、有効な精度を実質的に高くしている多くのアルゴリズムにとって重要な点です。

さらに、段階的アンダーフローでは、アンダーフローによる誤差が通常の丸め誤差より悪化することはありません。これは、アンダーフローを処理するためのほかのどのような方法に関して行われるよりはるかに強い表明であり、この点が段階的アンダーフローに対するもっとも適切な正当化の 1 つです。