GMPの仮数精度のオーバーフローを、それが発生する前または後に検出する方法は?
質問
私が尋ねたい質問は、指数であり、 <!> quot; missing <!> quot; 2つの負の浮動小数点数の合計の数字。
仮数部の精度が可変だとすると、仮数部の現在の精度設定がオーバーフローしたかどうかをどのように知ることができますか?または、予防的な側面から、仮数精度のオーバーフローが発生する可能性があるかどうかをどのように判断できますか?
よろしく、 ブルース。
解決
精度が失われるかどうかを確認するためのいくつかの数値的方法がありますが、要点は精度の定義をよりよく理解する必要があるということです。
-4939600281397002.2812
and
-4939600281397002.2812000000000000
同じ番号ではありません。
追加するとき
-2234.6016114467412141
and
-4939600281397002.2812
一緒に、 correct の出力は20桁の精度しかありません。小さい数字の追加の12桁は、大きい数字の12個の同様のサイズの数字が不明であるため、意味がありません。それらがゼロであることを暗示することはできますが、その場合は明示的に宣言し、それを処理できる番号付けシステムを使用する必要があります-コンピューターは暗黙の意図を理解するのが得意ではありません。
この問題が発生する時期を検出する限り、必要なことは、それらが同じ指数を持っているかどうかを調べることです(正規化された仮数+/- 1または同等のバイナリ等価を想定)。正規化されていない場合は、正規化して比較するか、指数とわずかに複雑な比較を使用する必要があります。
精度と精度は同じではありません...
-アダム
所属していません StackOverflow