Two Case Studies of NaN

(sebsite.pw)

8 points | by theanonymousone 3 hours ago

3 comments

  • aragilar 1 hour ago
    You 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.
  • jjgreen 2 hours ago

          hypot(Inf, NaN) == Inf
    
    made me laugh out loud ...
    • Someone 1 hour ago
      That’s straight from the standard. 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 1 hour ago
        Indeed, 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 1 hour ago