![](/img/trans.png)
[英]Why comparing a small floating-point number with zero yields random result?
我知道浮點數很棘手。 但是今天我遇到了一個我無法解釋的案例(並且無法使用獨立的 C++ 代碼重現)。 大型項目中的代碼如下所示: 這段代碼會導致隨機行為。 使用 gdb,確定隨機行為是由於比較f == 0給出隨機結果,即有時為真,有時為假。 代碼中的錯誤是,在使用f之前,它應該檢查 4 個字節是否 ...
[英]Why comparing a small floating-point number with zero yields random result?
我知道浮點數很棘手。 但是今天我遇到了一個我無法解釋的案例(並且無法使用獨立的 C++ 代碼重現)。 大型項目中的代碼如下所示: 這段代碼會導致隨機行為。 使用 gdb,確定隨機行為是由於比較f == 0給出隨機結果,即有時為真,有時為假。 代碼中的錯誤是,在使用f之前,它應該檢查 4 個字節是否 ...
[英]cmpeqpd sometimes returns wrong values
出於某種原因,有時在我的程序中我看到 其中xmm0 == {0x2cd000000000, 0x2cd000000000}和xmm3 == {0x0, 0x2011d0800000000}恰好在 xmm3 中返回{0xffffffffffffffff, 0x0} ,這是錯誤的,因為(double)0 ...
[英]Proper handling of denormal floats in ISO-Prolog
非正規浮點數很特別: ISO-Prolog 標准對如何處理這些問題有何規定? 對我來說很清楚,每當這些異常發生時引發evaluation_error(underflow)異常是處理它們的正確方法,但這會產生額外的成本——必須檢查產生的每個浮點數。 但是許多處理器提供的“將非正規化為零”(FTZ) ...
[英]denormalize the product of 2 floating point numbers or not
我試圖在不使用浮點指令的情況下將 2 個浮點數相乘。 在我遇到非規范化數字之前,一切都很順利。 我如何知道我應該對產品進行規范化還是非規范化? 這種不確定性使得對產品進行四舍五入變得困難。 我的直覺告訴我,如果兩個因素都是非規范化的數字,則產品應該是非規范化的。 ...
[英]What does the “denormal input” exactly mean in assembly when we consider using DAZ flag for SSE Floating Points
我已經閱讀了這篇文章和do-denormal-flags-like-denormals-are-zero-daz-affect-comparisons-for-equality ,我了解 FTZ 和 DAZ 標志之間的用法和區別。 DAZ 適用於輸入,FTZ 適用於來自 FP 操作的 output ...