[Haskell-cafe] Default implementation of Floating (**)
Henning Thielemann
lemming at henning-thielemann.de
Wed May 19 15:24:55 UTC 2021
On Wed, 19 May 2021, Viktor Dukhovni wrote:
> On Wed, May 19, 2021 at 11:50:22AM -0300, Fabrício Olivetti de França wrote:
>
>> So I was wondering, is there any reason to have this (potentially
>> dangerous) default implementation on base?
>
> The behaviour for negative inputs seems to be correct:
>
> λ> log(-2)
> NaN
> λ> exp(log(-2))
> NaN
> λ> exp(log(-2) * (-2))
> NaN
> λ> log(0)
> -Infinity
>
> were you expecting these to check for non-positive inputs and to throw a
> floating point exception?
I guess he expects (-2)**(-2) = 1/4.
But defined this way, (**) would be rather discontinuous.
More information about the Haskell-Cafe
mailing list