3 ms·
Oh, I don't really have a good solution in mind--it's just annoying. I guess one option would be to just declare that all NaNs are equal--I'm pretty sure that'
by tikhonj 14y ago
Oh, I don't really have a good solution in mind--it's just annoying.
I guess one option would be to just declare that all NaNs are equal--I'm pretty sure that's how bottoms work in Haskell, and it seems that NaN is essentially a floating-point version of bottom.
- justincormack 14y agoThere are however multiple bit patterns for NaN which complicates that.
- tikhonj 14y agoYes. I was actually thinking about this. However, you have a similar problem with the current model: two NaNs can have the same bit pattern, but still have to be unequal. This is somewhat simpler--as long as either argument to (==) is NaN the answer is False. However, you still have to figure out that at least one bit pattern corresponds to NaN. If you want them to be equal, you would have to figure out that both are NaN. This is certainly a little more difficult, but I think it isn't much worse than the current scenario.
- justincormack 14y agoI think though you currently just subtract them and test equality to zero, so it is all done by the hardware.
- Evbn 14y agoIf you try to compare something to bottom (undefined), your program will crash. Try it.