diff options
author | Sergey B Kirpichev <skirpichev@gmail.com> | 2024-12-06 10:28:32 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-06 10:28:32 (GMT) |
commit | 8b7c194c7bf7e547e4f6317528f0dcb9344c18c7 (patch) | |
tree | 8f38c98b9e4b017b10365a9033d4816810634249 /Python/gc.c | |
parent | e991ac8f2037d78140e417cc9a9486223eb3e786 (diff) | |
download | cpython-8b7c194c7bf7e547e4f6317528f0dcb9344c18c7.zip cpython-8b7c194c7bf7e547e4f6317528f0dcb9344c18c7.tar.gz cpython-8b7c194c7bf7e547e4f6317528f0dcb9344c18c7.tar.bz2 |
gh-120010: Fix invalid (nan+nanj) results in _Py_c_prod() (GH-120287)
In some cases, previously computed as (nan+nanj), we could recover
meaningful component values in the result, see e.g. the C11, Annex
G.5.1, routine _Cmultd():
>>> z = 1e300+1j
>>> z*(nan+infj) # was (nan+nanj)
(-inf+infj)
That also fix some complex powers for small integer exponents, computed
with optimized algorithm (by squaring):
>>> z**5 # was (nan+nanj)
Traceback (most recent call last):
File "<python-input-1>", line 1, in <module>
z**5
~^^~
OverflowError: complex exponentiation
Diffstat (limited to 'Python/gc.c')
0 files changed, 0 insertions, 0 deletions