[Haskell] instance Bounded Double

Lennart Augustsson lennart at augustsson.net
Sun Mar 13 18:30:25 EST 2005


I agree with all of that. :)

	-- Lennart

Thomas Davie wrote:
> I may be barking up the wrong tree here, but I think the key to this 
> discussion is that real numbers are not bounded, while doubles are 
> bounded.  One cannot say what the smallest or largest real number are, 
> but one can say what the smallest or largest double are (and it is 
> unfortunately implementation specific, and probably pretty messy to set 
> up).  We could define maxBound as 
> (2^(mantisa_space))^(2^(exponent_space)) and min bound pretty 
> similarly... But I'm sure that everyone will agree that this is a 
> horrible hack.
> 
> One may even question whether Doubles should be bounded, in that they 
> are an attempt to represent real numbers, and as such should come as 
> close as is possible to being real numbers (meaning not having bounds).
> 
> Sorry for a possibly irrelevant ramble.
> 
> Bob
> 
> On Mar 13, 2005, at 11:02 PM, Lennart Augustsson wrote:
> 
>> And what would you have minBound and maxBound be?
>> I guess you could use +/- the maximum value representable.
>> Going for infinity is rather dodgy, and assumes an FP
>> representation that has infinity.
>>
>>     -- Lennart
>>
>> Frederik Eaton wrote:
>>
>>> Interesting. In that case, I would agree that portability seems like
>>> another reason to define a Bounded instance for Double. That way users
>>> could call 'maxBound' and 'minBound' rather than 1/0 and -(1/0)...
>>> Frederik
>>> On Fri, Mar 11, 2005 at 11:10:33AM +0100, Lennart Augustsson wrote:
>>>
>>>> Haskell does not guarantee that 1/0 is well defined,
>>>> nor that -(1/0) is different from 1/0.
>>>> While the former is true for IEEE floating point numbers,
>>>> the latter is only true when using affine infinities.
>>>>
>>>>     -- Lennart
>>>>
>>>> Frederik Eaton wrote:
>>>>
>>>>> Shouldn't Double, Float, etc. be instances of Bounded?
>>>>>
>>>>> I've declared e.g.
>>>>>
>>>>> instance Bounded Double where
>>>>>   minBound = -(1/0)
>>>>>   maxBound = 1/0
>>>>>
>>>>> in a module where I needed it and there doesn't seem to be any issue
>>>>> with the definition...
>>>>>
>>>>> Frederik
>>>>>
>>>>
>>>>
>>
>> _______________________________________________
>> Haskell mailing list
>> Haskell at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell
> 
> 
> _______________________________________________
> Haskell mailing list
> Haskell at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell
> 



More information about the Haskell mailing list