Overflow in Ratio
David Benbennick
dbenbenn at gmail.com
Sun Jul 22 11:49:30 EDT 2007
On 7/22/07, haskell at list.mightyreason.com <haskell at list.mightyreason.com> wrote:
> I am going to take a guess and say that the library policy is that (Num Integer)
> and (Ratio Integer) are known to follow the axioms, but anyone who uses
> (Num Int) and (Ratio Int) did so to get the size and performance and does not
> want to cast to Integer.
The current implementation of < for Ratio Int is no better than a coin
flip. That is, if you take two elements of Ratio Int at random and
compare them with <, the answer will be right 50% of the time, and
wrong 50% of the time. I would assume that if someone is comparing
two elements of Ratio Int with <, they're doing so because they want
the right answer. If they don't care what answer they get, they can
just assume True and be even more efficient.
Also, I don't think it's generally well known that the overflow
problems are as bad as they are. For example, the documentation at
http://haskell.org/ghc/docs/latest/html/libraries/base/Data-Ratio.html
doesn't include any warnings that Ratio Int doesn't obey the
documented behavior of Ord.
More information about the Libraries
mailing list