Has anybody seen such a thing? Small self-sufficient modules are preferred.
+7
A:
SymPy is a symbolic maths library written entirely in Python and has full support for rational numbers. From the tutorial:
>>> from sympy import *
>>> a = Rational(1,2)
>>> a
1/2
>>> a*2
1
>>> Rational(2)**50/Rational(10)**50
1/88817841970012523233890533447265625
There is also GMP for Python (GMPY) which, while not pure Python, is probably more efficient.
Robert Gamble
2008-11-30 20:47:25
Thanks. SymPy's Rational is nice, if a little too intertwined with other parts of the library.
Constantin
2008-11-30 21:42:34
+7
A:
The fractions module from 2.6 can be ripped out if necessary. Grab fractions.py, numbers.py, and abc.py; all pure python modules.
Coady
2008-11-30 21:57:16
+1
A:
One more thing to try is Rat.py from demo folder in Python 2.5 maintenance branch. If i understand correctly, it is the daddy of 2.6 fractions
. It's a single module without dependencies.
>>> from Rat import rat
>>> rat(1) / rat(3)
Rat(1,3)
>>> rat(1, 3) ** 2
Rat(1,9)
UPDATE: Nah, fractions.py
is about 2.5 times faster for my task.
Constantin
2008-12-01 12:33:28