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

印刷ビューの終了

更新: 2015 年 1 月
 
 

2.3.6 アンダーフローは問題か

これらの例にもかかわらず、アンダーフローはめったに問題にならないと議論される場合もあります。問題にならないなら、悩む必要がありません。しかし、この議論は堂々巡りを招くものです。

段階的アンダーフローが存在しない場合、ユーザープログラムは、暗黙的な不正確性のしきい値に敏感になる必要があります。 たとえば、単精度で計算の一部でアンダーフローが発生し、突発的アンダーフローを使用してアンダーフローした結果が 0 に置き換えられた場合は、単精度の指数での通常の低い範囲である 10-38 ではなく、約 10-31 までしか正確性を保証できません。

つまり、プログラマは、この不正確性のしきい値に近づいている時期を検出するための独自の方法を実装するか、そうでなければ自分のアルゴリズムの堅牢で、安定した実装に対する追求を諦める必要があります。

一部のアルゴリズムは、0 に近い制限された領域では計算が実行されないようにスケーリングできます。ただし、アルゴリズムのスケーリングや不正確性のしきい値の検出は、ほとんどのデータには必要がなくても、困難で、しかも時間がかかる場合があります。