Michael M. <[EMAIL PROTECTED]> wrote: > Yes, this "gmpy" sounds good for calc things like that. > But not available on my machine. > ImportError: No module named gmpy
Sorry, I should have said - you'll need to download that from http://gmpy.sourceforge.net/ > Anyway, thanks for posting. This gmpy module can be very intersting. > But right now, the focus was, if it's possible to translate a strange C > code into Python. And it is. Sure ;-) > > Maybe, someone can also translate a very simple algorithm for calc a > range of PI in Python. (Available Code for C.) > http://crd.lbl.gov/~dhbailey/ Here are some more pi calculation methods. You'll need the FixedPoint class in my last posting, or you cah use gmpy mpf~s also. _1 = FixedPoint(1) # or _1 = gmpy.mpf(1, bits) # or (for testing) _1 = 1.0 _3 = _1 * 3 def arctan(x): """ Calculate arctan(x) arctan(x) = x - x**3/3 + x**5/5 - ... (-1 <= x <= 1) """ total = x power = x divisor = 1 old_delta = None while 1: power *= x power *= x power = -power divisor += 2 old_total = total total += power / divisor delta = abs(total - old_total) if old_delta is not None and delta >= old_delta: break old_delta = delta return total def pi_machin(): return 4*(4*arctan(_1/5) - arctan(_1/239)) def pi_ferguson(): return 4*(3*arctan(_1/4) + arctan(_1/20) + arctan(_1/1985)) def pi_hutton(): return 4*(2*arctan(_1/3) + arctan(_1/7)) def pi_gauss(): return 4*(12*arctan(_1/18) + 8*arctan(_1/57) - 5*arctan(_1/239)) def pi_euler(): return 4*(5*arctan(_1/7) + 2*arctan(_3/79)) -- Nick Craig-Wood <[EMAIL PROTECTED]> -- http://www.craig-wood.com/nick -- http://mail.python.org/mailman/listinfo/python-list