On Mon, Jul 06, 2020 at 10:46:03AM -0700, Christopher Barker wrote: > 1) The math module is written in C, and Guido at least (he was still BDFL > then) rejected the idea of refactoring it to allow Python components (yes, > that was proposed, and even started by, I think, Victor Stiner). Yes, you > can write generic functions in C, but it's a lot more of a pain.
I think that it is long past time that we give up the idea that the math module is a thin wrapper around the system's C maths library. We should just add a math.py file that looks like this: from _math import * > 2) The rest of the math module is currently all about floats already, That's not really the case, and hasn't been for a while. Some functions manage to work very well with non-floats: py> math.factorial(100) 9332621544394415268169923885626670049071596826438162146859296389 5217599993229915608941463976156518286253697920827223758251185210 916864000000000000000000000000 # New in Python 3.8 I think? py> math.prod([1, 2, 3, Fraction(1, 5)]) Fraction(6, 5) Even if they return a float, or int, they still work with non-floats without losing accuracy: py> math.log10(10**5000) 5000.0 py> math.ceil(Fraction(1, 10**5000)) 1 even when the argument would overflow or underflow. -- Steven _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/LK4P7AKLUPTJX5RWF6E2Q5HC25HTGNAO/ Code of Conduct: http://python.org/psf/codeofconduct/