[Haskell] Literal for Infinity

Yitzchak Gale gale at sefer.org
Thu Sep 29 14:11:25 EDT 2005


Hi Jacques,

Thanks also to you for a most interesting reply.

This same discussion has taken place on the
discussion list of every modern general-purpose
programming language.

The same points are always raised and argued, and
the conclusion is always the same: floating point
exceptions should raise exceptions.  Programs that
are so sensitive that the tiny overhead makes a
difference should use numeric libraries, unboxed
types, FFI, and the like.

In Haskell also, it looks like the infrastructure
was already laid in the Control.Exception module.
I hope we will soon be using it.

I personally would like also to see alternative
functions that return values in the Error monad.

Regards,
Yitz

On Thu, Sep 29, 2005 at 03:13:27PM +0300, Jacques Carette wrote:
> The IEEE 754 standard says (fairly clearly) that +1.0 / +0.0 is one of 
> the most 'stable'  definitions  of Infinity (in  Float at least).  
> Throwing an exception is also regarded as a possibility in IEEE 754, but 
> it is expected that that is not the default, as experience shows that 
> that is a sub-optimal default.  Mathematical software (Maple, 
> Mathematica, Matlab) have generally moved in that direction.
> 
> Almost all hardware implementations of float arithmetic now default to 
> IEEE 754 arithmetic.  Having the arithmetic do 'something else' involves 
> more CPU cycles, so users should generally complain if their system's 
> arithmetic differs from IEEE 754 arithmetic without some deep reason to 
> do so [there are some; read and understand William Kahan's papers for 
> these].
> 
> Jacques


More information about the Haskell mailing list