3 ms·
Two Case Studies of NaN
- jjgreen 3mo agohypot(Inf, NaN) == Inf made me laugh out loud ...
- Someone 3mo agoThat’s straight from the standard. https://en.cppreference.com/c/numeric/math/hypot https://en.cppreference.com/c/numeric/math/hypot: “if one of the arguments is ±∞, hypot returns +∞ even if the other argument is NaN” ⇒ I expect this choice got careful consideration. (Edit: in the end, the reasoning still could have been “unfortunately, existing implementations do it this way; we’ll begrudgingly follow them”)
- jjgreen 3mo agoIndeed, and makes you realise that NaN is not "not a number" but rather "not a particular number", if one cathetus is infinite then the hypotenuse must be infinite whatever the other cathetus is ...
- ColinWright 3mo agoSee also: https://news.ycombinator.com/item?id=48855045 https://news.ycombinator.com/item?id=48855045
- aragilar 3mo agoYou don't need NaN (or Inf) to have unexpected behaviour with floats and naive loops in lua, using 1e52 is enough. Conflating floating point and integers (independent of encoding) is always a bit of a trap.