[Haskell-cafe] 1/0

Henning Thielemann lemming at henning-thielemann.de
Tue Jun 17 02:01:42 EDT 2008


On Mon, 16 Jun 2008, Dan Doel wrote:

> On Monday 16 June 2008, Evan Laforge wrote:
>
>> (huge negative number)
>>
>> Ok, so integral types don't have that exceptional value.  Shouldn't
>> trying to convert NaN or Infinity to an Integral throw something?  Is
>> it a performance thing?  I'd think if you're converting to Integer you
>> don't really need hardware level performance anyway, so a couple of
>> checks wouldn't kill anyone.
>
> This is a (known by some) bug of sorts in the various floating point ->
> integral transformations (which ultimately boil down to decodeFloat or
> something like that at some point). It apparently doesn't know about the
> various exceptional values in the IEEE representation, so it just treats the
> representation like any other value. Infinity and NaN look like various huge
> numbers if you interpret them like any other value, so that's what you get
> out of round/ceiling/floor/etc.
>
> It's not ideal, but I guess no one's bothered to fix it. Might be something to
> bring up on the libraries mailing list.

This could be combined with improving performance:
    http://hackage.haskell.org/trac/ghc/ticket/2281
    http://hackage.haskell.org/trac/ghc/ticket/2271
    http://hackage.haskell.org/trac/ghc/ticket/1434


More information about the Haskell-Cafe mailing list