[Python-Dev] PEP 485 review (isclose())
Victor Stinner
victor.stinner at gmail.com
Tue Mar 3 10:17:40 CET 2015
More information about the Python-Dev mailing list
Tue Mar 3 10:17:40 CET 2015
- Previous message (by thread): [Python-Dev] PEP 485 review (isclose())
- Next message (by thread): [Python-Dev] PEP 485 review (isclose())
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2015-03-03 6:25 GMT+01:00 Chris Barker <chris.barker at noaa.gov>: > As far as I can tell, the math module is entirely a C extension. So I can: > (...) > 2) Write it in Python, and monkey-patch it in to the math module -- I > honestly have no idea how to do that, but as I can add a new name to the > math module after importing it, it should be doable --but I have no idea > where the code would go. Maybe it's time to rename the math module to _math and create a math.py module, like _decimal/decimal? math.py should end with "from _math import *". It may be interesting to have Python implementation of math.fsum(), math.factorial(), math.degrees() and math.radians(). Extract of fsum() comment: Full precision summation of a sequence of floats. def msum(iterable): partials = [] # sorted, non-overlapping partial sums for x in iterable: i = 0 for y in partials: if abs(x) < abs(y): x, y = y, x hi = x + y lo = y - (hi - x) if lo: partials[i] = lo i += 1 x = hi partials[i:] = [x] return sum_exact(partials) The C implementation of factorial is not naive: "Divide-and-conquer factorial algorithm" (see the C code). Obvisouly, a expect lower performances from Python code manipulating numbers (because of the cost of boxing-unboxing, cost of functions calls, etc.). But it might help other Python implementations to implement the math module. Victor
- Previous message (by thread): [Python-Dev] PEP 485 review (isclose())
- Next message (by thread): [Python-Dev] PEP 485 review (isclose())
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list