Numbers again

Jon Fairbairn Jon.Fairbairn@cl.cam.ac.uk
Fri, 22 Aug 2003 20:34:09 +0100


On 2003-08-22 at 18:39+0200 Konrad Hinsen wrote:
> I am getting a bit worried about the usability of Haskell
> for numerical work.  The Haskell 98 report states that
> floating literals are represented as a conversion from
> Rational, which means that the literal is first converted
> to a Rational. I can't find anything in the Haskell report
> that states how this conversion should take place, and to
> what precision it should be correct. It could be made
> correct to any precision as Rationals are represented
> using Integers, but at least Hugs doesn't do that. By
> experimenting with some particular cases, I found that its
> internal Rational representation is even less accurate
> than the precision of Double permits, which means that it
> is impossible to specify literals to the full precision of
> Double. GHC behaved fine in my tests. But what can I
> safely assume from a Haskell implementation?

You can safely assume that (as it says in its documentation)
Hugs is not suitable for numeric work.  "proper"¹ Haskell
implementations ought to use conversions that give the best
possible accuracy for the final type.

 Jón

[1] not that Hugs isn't proper, but it's just not designed
for that.

-- 
Jón Fairbairn                                 Jon.Fairbairn@cl.cam.ac.uk