How about adding rational fraction to Python?

Carl Banks pavlovevidence at gmail.com
Sat Feb 16 19:50:13 EST 2008


On Feb 16, 5:51 pm, Jeff Schwab <j... at schwabcenter.com> wrote:
> Carl Banks wrote:
> > On Feb 16, 3:03 pm, Lie <Lie.1... at gmail.com> wrote:
> >> Although rationals have its limitations too, it is a much
> >> better choice compared to floats/Decimals for most cases.
>
> > Maybe that's true for your use cases, but it's not true for most cases
> > in general.
>
> > Rationals are pretty useless for almost any extended calculations,
> > since the denominator tends to grow in size till it's practically
> > unusbale,
>
> What do you mean by "practically unusable?"

So big that a fraction takes 10 minutes to reduce to simplest form and/
or your hard disk starts thrashing.

It can easily happen with seemingly innocuous calculations.


> I heard similar arguments
> made against big integers at one point ("Primitive types are usually big
> enough, why risk performance?") but I fell in love with them when I
> first saw them in Smalltalk, and I'm glad Python supports them natively.

It's not the same argument, though.

Repeated calculations don't make bignums too large to manage unless
they're growing it exponentially.

With rationals, the accumulating calculations usually makes the
denominator grow out of control (unless there's some mitigating
factor, like in Paul Rubin's example where there were only a ever few
denominators.)


Carl Banks



More information about the Python-list mailing list