Indeed!  Getting the library numerics to do the Right Thing is something that can only be done by people who know about numerics.  People who build compilers aren’t, alas.  It’s quite a specialised subject, and very easy to screw up.  And there’s performance to worry about too in the common case when the corner cases don’t appear.

 

So if there are folk out there who care about getting numerics correct, we would welcome your direct involvement.  Look at the code, make it right, send patches to libraries@haskell.org.  It’s all open source, and you’ll be benefiting lots of people.

 

Simon

 

From: haskell-cafe-bounces@haskell.org [mailto:haskell-cafe-bounces@haskell.org] On Behalf Of Lennart Augustsson
Sent: 04 August 2007 16:47
To: Andrew Coppin
Cc: haskell-cafe@haskell.org
Subject: Re: [Haskell-cafe] How odd...

 

Haskell doesn't know much about infinity, but Haskell implementations are allowed to use IEEE floating point which has infinity.
And to get things right, there needs to be a few changes to the library to do the right thing for certain numbers, this is not news.  In fact I filed a bug report a while back about it.

  -- Lennart

On 8/4/07, Andrew Coppin <andrewcoppin@btinternet.com> wrote:

Paul Johnson wrote:
> Andrew Coppin wrote:
>> > 0**2
>> 0
>>
>> > (0 :+ 0)**2
>> NaN :+ NaN
>>
>> (Is this a bug?)
> According to the Standard Prelude,
> #   x ** y           =  exp (log x * y)