Reverting the patch that tried to fix the issue whereby x**2 raises

OverflowError while x*x succeeds and produces infinity; apparently
these inconsistencies cannot be fixed across ``all'' platforms and
there's a widespread feeling that therefore ``every'' platform
should keep suffering forevermore.  Ah well.
This commit is contained in:
Alex Martelli 2006-08-23 22:17:59 +00:00
parent 39c532c0b6
commit 348dc88097
2 changed files with 4 additions and 17 deletions

View file

@ -821,12 +821,12 @@ float_pow(PyObject *v, PyObject *w, PyObject *z)
ix = pow(iv, iw);
PyFPE_END_PROTECT(ix)
Py_ADJUST_ERANGE1(ix);
/* we need to ignore ERANGE here and just return inf */
if (errno != 0 && errno != ERANGE) {
if (errno != 0) {
/* We don't expect any errno value other than ERANGE, but
* the range of libm bugs appears unbounded.
*/
PyErr_SetFromErrno(PyExc_ValueError);
PyErr_SetFromErrno(errno == ERANGE ? PyExc_OverflowError :
PyExc_ValueError);
return NULL;
}
return PyFloat_FromDouble(ix);