New submission from Serhiy Storchaka:
Currently the math module uses own implementation of some mathematical
functions that are in C99 standard, but not in C89 standard: tgamma, lgamma,
erf, erfc. Proposed patch makes it to use functions from standard C library if
they are available. They are faster and presumably more accurate.
Here are microbenchmark results (time in microseconds):
0.1 1 3 10 30
erf unpatched: 0.506 0.655 0.509 0.548 0.239
erf patched: 0.129 0.252 0.357 0.253 0.253
erfc unpatched: 0.508 0.646 0.532 0.522 0.251
erfc patched: 0.129 0.239 0.373 0.371 0.307
0.1 1.5 3 10 10.5
gamma unpatched: 0.369 0.279 0.273 0.274 0.457
gamma patched: 0.24 0.23 0.412 0.741 0.682
lgamma unpatched: 0.351 0.338 0.478 0.627 0.52
lgamma patched: 0.217 0.155 0.37 0.372 0.247
If some libm implementations are pretty bad, they can be disabled by undefining
corresponding HAVE_XXX macros.
----------
components: Extension Modules
files: math_libc_funcs.patch
keywords: patch
messages: 258288
nosy: mark.dickinson, serhiy.storchaka
priority: normal
severity: normal
stage: patch review
status: open
title: Use C99 functions in math if available
type: enhancement
versions: Python 3.6
Added file: http://bugs.python.org/file41623/math_libc_funcs.patch
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue26121>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com