That does sound like the right way forward, though based on my back-of-the-envelope calculations I think there are some additional tweaks that need to be made. Try comparing a tiny positive value with a tiny negative value. The simplest way to fix this is non-intuitive:
```diff - if (x < 0) + if (x >= 0) x = INT_MIN - x; - if (y < 0) + if (y >= 0) y = INT_MIN - y; ```
Adding a `compare_uint` everywhere we have a `compare_float` does not seem ideal (neither does all of the separate copies of `compare_float` already floating around). Would both of these functions be better off in some shared test header?