2012-01-05 3 views
1

浮動小数点演算のIEEE標準では、乗算のもとで保存された浮動小数点数の順序があります。例えば、a、x、yは浮動小数点数とする。IEEE 754-2008乗算のもとで保存された標準命令

x < y次にax < ay?

これが真実でないのは確かに奇妙なことですが、私はいくつか安心したいと思います。

ありがとうございます。

答えて

1

あなたの質問では、乗数は正であると仮定しています。

答えはいいえです。

まず、製品がアンダーフローまたはオーバーフローする可能性が常にあります。この場合、それらは0または+無限大に丸められ、不等式は違反されます。より一般的な場合として

:結果は常に正しく丸められており、axの丸められていない値がayの丸め前の値よりも小さいので、斧の丸められた値は、yの丸められた値より大きくすることはできません。これは、一方が切り上げられ、他方が切り捨てられ、丸められた値が等しくなる可能性を残す。

これは、xyが連続する浮動小数点数である場合にのみ発生します。さもなければ、差は常に最後の場所で1単位より大きく、数は同じに丸められません。

残念ながら、これは時々起こります。例えば取る:

x = 1.2345678899999997 
y = 1.23456789 
a = 0.84812721230468113 

、その後axay両方が1.047070622946572に等しいです。

+0

+1ただし、乗算の結果が正規化されていない場合、 'x'と' y'が連続する浮動小数点数でなくても起こる可能性があります。また、aが0、無限大、NaNの場合、答えは自明に「いいえ」です。 –

関連する問題