You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Help wanted: Why do maths/radix2_fft.py test results change on Python 3.14 beta? #12729
changed the title [-]Help requested: Why do maths/radix2_fft.py test results change on Python 3.14 beta?[/-][+]Help wanted: Why do maths/radix2_fft.py test results change on Python 3.14 beta?[/+]on May 12, 2025
Implement mixed-mode arithmetic rules combining real and complex numbers as specified by C standards since C99. (Contributed by Sergey B Kirpichev in gh-69639.)
This may be the reason for changes in the doctests.
Probably, you want rather complex(round(x[0].real, 8), round(x[0].imag, 8)). But with above pattern you can get different answers on 3.14 and 3.13. Example:
Python 3.14.0a7 (tags/v3.14.0a7:29af6cee02, Apr 9 2025, 12:48:04) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 1+ (-0.0)*1j
(1-0j)
Python 3.13.3 (tags/v3.13.3:6280bb5478, Apr 9 2025, 10:07:49) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 1+ (-0.0)*1j
(1+0j)
Obviously, the last answer is incorrect as a replacement of complex(1, -0.0).
Activity
[-]Help requested: Why do maths/radix2_fft.py test results change on Python 3.14 beta?[/-][+]Help wanted: Why do maths/radix2_fft.py test results change on Python 3.14 beta?[/+]MaximSmolskiy commentedon May 13, 2025
@cclauss In Python 3.14 Release Notes (https://docs.python.org/3.14/whatsnew/3.14.html) there are mentions of changes related to complex numbers:
This may be the reason for changes in the doctests.
cclauss commentedon May 14, 2025
@skirpichev
skirpichev commentedon May 14, 2025
JFR, above pr was merged not before latest beta. Did you test alphas?
cclauss commentedon May 14, 2025
https://github.com/TheAlgorithms/Python/actions/runs/14991034991/job/42114180325#step:5:20 This is beta 1.
Or is uv using a different Py3.14?
skirpichev commentedon May 14, 2025
My question was did you test 3.14 alphas?
skirpichev commentedon May 14, 2025
Anyway, so far I can guess this might be related to:
Probably, you want rather
complex(round(x[0].real, 8), round(x[0].imag, 8)). But with above pattern you can get different answers on 3.14 and 3.13. Example:Obviously, the last answer is incorrect as a replacement of
complex(1, -0.0).maths/radix2_fft.py: Fix calculation for Python 3.14
maths/radix2_fft.py: Fix calculation for Python 3.14 (#12772)
maths/radix2_fft.py: Fix calculation for Python 3.14 (#12772)