math.sumprod() missing one case for combined int/float inputs.
Abierto
@rhettinger ya está trabajando en esto.
Desde el 17/9/2025.
extension-modules
type-bug
- Lenguaje dominante
- Python
- Estrellas
- 77.2k
- Forks
- 36k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
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
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Evaluación
Este issue todavía no se ha evaluado.