local function isNaN1( v ) return type( v ) == "number" and v ~= v end
local function isNaN2( v ) return tostring(v) == tostring(0/0) end
local function isNaN3( v ) return v~=v end
local tbl = {1/0, 0/0, -(1/0), -(0/0), math.huge, -math.huge}
for _,n in ipairs(tbl) do
print(isNaN1(n), isNaN2(n), isNaN3(n), n)
end
CmxvY2FsIGZ1bmN0aW9uIGlzTmFOMSggdiApIHJldHVybiB0eXBlKCB2ICkgPT0gIm51bWJlciIgYW5kIHYgfj0gdiBlbmQKbG9jYWwgZnVuY3Rpb24gaXNOYU4yKCB2ICkgcmV0dXJuIHRvc3RyaW5nKHYpID09IHRvc3RyaW5nKDAvMCkgZW5kCmxvY2FsIGZ1bmN0aW9uIGlzTmFOMyggdiApIHJldHVybiB2fj12IGVuZAoKbG9jYWwgdGJsID0gezEvMCwgMC8wLCAtKDEvMCksIC0oMC8wKSwgbWF0aC5odWdlLCAtbWF0aC5odWdlfQoKZm9yIF8sbiBpbiBpcGFpcnModGJsKSBkbwogICAgcHJpbnQoaXNOYU4xKG4pLCBpc05hTjIobiksIGlzTmFOMyhuKSwgbikKZW5k