summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorMark Dickinson <mdickinson@enthought.com>2021-06-12 09:23:02 (GMT)
committerGitHub <noreply@github.com>2021-06-12 09:23:02 (GMT)
commit4a42cebf6dd769e2fa4e234a9e91093b3ad1cb63 (patch)
tree925efc812b8810d8c5fb6c1040307d1cacf4b976 /Modules
parent3ec3ee7d2e9b45b586e486e429b412d6d0ca530f (diff)
downloadcpython-4a42cebf6dd769e2fa4e234a9e91093b3ad1cb63.zip
cpython-4a42cebf6dd769e2fa4e234a9e91093b3ad1cb63.tar.gz
cpython-4a42cebf6dd769e2fa4e234a9e91093b3ad1cb63.tar.bz2
bpo-44339: Fix math.pow corner case to comply with IEEE 754 (GH-26606)
Change the behaviour of `math.pow(0.0, -math.inf)` and `math.pow(-0.0, -math.inf)` to return positive infinity instead of raising `ValueError`. This makes `math.pow` consistent with the built-in `pow` (and the `**` operator) for this particular special case, and brings the `math.pow` special-case handling into compliance with IEEE 754.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/mathmodule.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index b3429c5..bd97b03 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -2810,8 +2810,6 @@ math_pow_impl(PyObject *module, double x, double y)
r = y;
else if (y < 0. && fabs(x) < 1.0) {
r = -y; /* result is +inf */
- if (x == 0.) /* 0**-inf: divide-by-zero */
- errno = EDOM;
}
else
r = 0.;