]> granicus.if.org Git - python/commitdiff
Revert previous change which didn't make sense the next day :-)
authorRaymond Hettinger <python@rcn.com>
Wed, 10 Dec 2003 15:22:23 +0000 (15:22 +0000)
committerRaymond Hettinger <python@rcn.com>
Wed, 10 Dec 2003 15:22:23 +0000 (15:22 +0000)
Demo/scripts/mpzpi.py

index 03b90fba30bf9569b9181a85e30fcbdbb05b3ef2..93c74aa398a47084537a51615f27b6aefc76e8fd 100755 (executable)
@@ -8,25 +8,27 @@
 # published by Prentice-Hall (UK) Ltd., 1990.
 
 import sys
+from mpz import mpz
 
 def main():
-        k, a, b, a1, b1 = 2, 4, 1, 12, 4
-        while 1:
-                # Next approximation
-                p, q, k = k*k, 2*k+1, k+1
-                a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1
-                # Print common digits
-                d, d1 = a/b, a1/b1
-                while d == d1:
-                        output(d)
-                        a, a1 = 10*(a%b), 10*(a1%b1)
-                        d, d1 = a/b, a1/b1
+       mpzone, mpztwo, mpzten = mpz(1), mpz(2), mpz(10)
+       k, a, b, a1, b1 = mpz(2), mpz(4), mpz(1), mpz(12), mpz(4)
+       while 1:
+               # Next approximation
+               p, q, k = k*k, mpztwo*k+mpzone, k+mpzone
+               a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1
+               # Print common digits
+               d, d1 = a/b, a1/b1
+               while d == d1:
+                       output(d)
+                       a, a1 = mpzten*(a%b), mpzten*(a1%b1)
+                       d, d1 = a/b, a1/b1
 
 def output(d):
-        # Use write() to avoid spaces between the digits
-        # Use int(d) to avoid a trailing L after each digit
-        sys.stdout.write(`int(d)`)
-        # Flush so the output is seen immediately
-        sys.stdout.flush()
+       # Use write() to avoid spaces between the digits
+       # Use int(d) to avoid a trailing L after each digit
+       sys.stdout.write(`int(d)`)
+       # Flush so the output is seen immediately
+       sys.stdout.flush()
 
 main()