math.sumprod() missing one case for combined int/float inputs.
Ouverte
@rhettinger y travaille déjà.
Depuis le 17/9/2025.
extension-modules
type-bug
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 36k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug report
Bug description:
The sumprod function has high precision paths for int/int, int/float, and float/float inputs. However it missed a case when an int/int pair follows another pair that contained a float. In other words, it assumes that once a float is encountered, that subsequent inputs won't contain a pair of ints.
>>> import math
>>> data = [-0.01, 1, -1, 0.01]
>>> math.sumprod(data, [1, 1, 1, 1])
-8.673617379884035e-18
>>> math.sumprod(data, [1.0, 1.0, 1.0, 1.0])
0.0
CPython versions tested on:
3.13, 3.15, 3.14
Operating systems tested on:
macOS
Linked PRs
- gh-139075
- gh-139085
- gh-139086
- gh-139092
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Évaluation
Cette issue n'a pas encore été évaluée.