@@ -30,9 +30,6 @@ are your tuples so big?
30# Number Conversions
30# Number Conversions
31@docs round, floor, ceiling, truncate, toFloat
31@docs round, floor, ceiling, truncate, toFloat
33−# Floating Point Checks
36# Angle Conversions
33# Angle Conversions
37All angle conversions result in “standard Elm angles”
34All angle conversions result in “standard Elm angles”
38which happen to be radians.
35which happen to be radians.
@@ -42,6 +39,9 @@ which happen to be radians.
42# Polar Coordinates
39# Polar Coordinates
43@docs toPolar, fromPolar
40@docs toPolar, fromPolar
42+# Floating Point Checks
43+@docs isNaN, isInfinite
46@docs fst, snd
46@docs fst, snd
@@ -274,17 +274,30 @@ ceiling = Native.Basics.ceiling
274toFloat : Int -> Float
274toFloat : Int -> Float
275toFloat = Native.Basics.toFloat
275toFloat = Native.Basics.toFloat
277−{- | Determines whether a float is an undefined or unrepresentable number,
277+{- | Determines whether a float is an undefined or unrepresentable number.
278−such as 0/0. NaN stands for *not a number*.
278+NaN stands for *not a number* and it is [a standardized part of floating point
279+numbers](http://en.wikipedia.org/wiki/NaN).
282+ isNaN (sqrt -1) == True
283+ isNaN (1/0) == False -- infinity is a number
280isNaN : Float -> Bool
286isNaN : Float -> Bool
281isNaN = Native.Basics.isNaN
287isNaN = Native.Basics.isNaN
283−{- | Determines whether a float is finite. Positive and negative infinity are
289+{- | Determines whether a float is positive or negative infinity.
284−valid floating point numbers, created by computations like `1/0` and `-1/0`.
290+
291+ isInfinite (0/0) == False
292+ isInfinite (sqrt -1) == False
293+ isInfinite (1/0) == True
294+ isInfinite 1 == False
296+Notice that NaN is not infinite! For float `n` to be finite implies that
297+`not (isInfinite n || isNaN n)` evaluates to `True`.
286−isFinite : Float -> Bool
299+isInfinite : Float -> Bool
287−isFinite = Native.Basics.isFinite
300+isInfinite = Native.Basics.isInfinite
289-- Function Helpers
302-- Function Helpers