[Haskell-cafe] about integer and float operations

Manlio Perillo manlio_perillo at libero.it
Thu Feb 5 05:45:45 EST 2009


Jonathan Cast ha scritto:
> On Thu, 2009-02-05 at 01:10 +0100, Manlio Perillo wrote:
>> Yitzchak Gale ha scritto:
>>> In our case, the Python division first does a quick estimate
>>> of the sizes of the two integers, and just returns zero if it
>>> sees that there will be underflow on conversion to double.
>>> So I made the following rough change to the Haskell:
>>>
>>> -- An exact division
>>> (/.) :: Integer -> Integer -> Double
>>> x /. y
>>>     | y `div` x > 5*10^323 = 0
>>>     | otherwise            = fromRational $ toRational x / toRational y
>>>
>> Right, but I would like to see a proper implemented function for exact 
>> integer division in GHC.
> 
> (%) *is* a proper function for exact integer division.  But you'll find
> plenty of Haskellers to balk at calling anything that returns a Double
> `proper'.
> 

After a quick search I found the function fromRat in GHC.Float, that 
implement the division of two big integer returning a floating point number.

However it only supports rationals, and with rational there is a 
performance problem caused by fraction reduction.

I would like to do some test with fraction reduction disabled, but right 
now I don't have the time.



Regards  Manlio Perillo


More information about the Haskell-Cafe mailing list