On 11/18/2010 11:27 AM, Daniel Fetchinson wrote:
I do a recursive evaluation of an expression involving fractions and
unsurprisingly the numerator and denominator grows pretty quickly.
After 10-20 iterations the number of digits in the numerator and
denominator (as integers) reaches 80-100. And I'm wondering until what
point I can trust the result since I'm using fractions.Fraction for
the whole procedure. Are Fraction's infinite precision?

'Unbounded' (except by memory) would be be more accurate.

Or will I get
some sort of an exception if python is not able to represent the
numerator and/or denominator as integers?

I believe you could eventually get MemoryError. But you might get tired of waiting first. I tried

i=0
n=2
while True:
    print(i)
    n *= n
    i += 1

The 30th doubling (I believe to a billion bit or 128 megabyte number, on a gigabyte machine) took a few minutes and I killed the program after that as it tried to page everything else out to disk.


--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to