Rationals?
Nick Craig-Wood
nick at craig-wood.com
Thu Nov 18 05:30:22 EST 2004
Tim Peters <tim.peters at gmail.com> wrote:
> PS: If you simply want to *use* a high-powered rational type,
> download gmpy and be happy tonight.
I was just about to chip in with that!
http://gmpy.sourceforge.net/
gmpy is really good (I've used it for some numerical experiments).
Its very fast and very easy to use and has very good infinite
precision integers (mpz, rationals mpq and floats mpf)
However it still seems to be in alpha after its last release more than
one year ago?
>>> import gmpy
>>> a = gmpy.mpq(1)
>>> a / 3
mpq(1,3)
>>> a = gmpy.mpq(22, 7)
>>> a
mpq(22,7)
>>> float(a)
3.1428571428571428
>>> a * 113/355
mpq(2486,2485)
>>> gmpy.sqrt(a)
mpz(1)
>>> gmpy.fsqrt(a)
mpf('1.77281052085583665659e0')
>>> gmpy.mpf(a, 100)
mpf('3.142857142857142857142857142857142857141e0',100)
>>> def e(digits = 100, zero = 0.0):
... sum = zero
... i = zero + 1
... n = 1
... epsilon = (zero + 10) ** -digits
... while i > epsilon:
... sum += i
... i = i / n
... n += 1
... return sum
...
>>>
>>> print e(25, 0.0)
2.71828182846
>>> print e(25, gmpy.mpf(0, 100))
2.718281828459045235360287404308329607628
>>> print e(25, gmpy.mpq(0))
337310723185584470837549/124089680346647887872000
--
Nick Craig-Wood <nick at craig-wood.com> -- http://www.craig-wood.com/nick
More information about the Python-list
mailing list