
Brandon S. Allbery KF8NH wrote:
On Jul 17, 2009, at 22:27 , MaurĂ cio wrote:
Is there maybe some way to check if a double or long double do have a "proper" value?
isNaN :: a -> Bool True if the argument is an IEEE "not-a-number" (NaN) value
isInfinite :: a -> Bool True if the argument is an IEEE infinity or negative infinity
isDenormalized :: a -> Bool True if the argument is too small to be represented in normalized format
isNegativeZero :: a -> Bool True if the argument is an IEEE negative zero
isIEEE :: a -> Bool True if the argument is an IEEE floating point number
(in Prelude, even. Class RealFloat)
But don't trust the Prelude in Hugs (Sept2006)! The isInfinite and isNaN methods are hard-coded to answer False, ignoring the argument entirely. The logfloat package has the module Hugs.RealFloat[1] which provides correct versions (defaulting to the Prelude definitions for non-Hugs compilers). [1] http://hackage.haskell.org/packages/archive/logfloat/0.12.0.1/doc/html/Hugs-... -- Live well, ~wren