Bug report
Bug description:
Right now we do this after invocation of the function or it's optimized alternative (for small integers). That has advantage as - IIUC - both algorithms may trigger error condition. On another hand, behaviour of the public C API function _Py_c_pow() (used in the CPython codebase only for complex_pow()) will differ from the pure-python pow()...
Other similar functions (complex_div() and complex_abs()) leave setting errno to corresponding C-API function.
My proposal: move _Py_ADJUST_ERANGE2() call to _Py_c_pow() and c_powi(). If that does make sense I'll provide a patch.
CPython versions tested on:
CPython main branch
Operating systems tested on:
No response
Linked PRs
Bug report
Bug description:
Right now we do this after invocation of the function or it's optimized alternative (for small integers). That has advantage as - IIUC - both algorithms may trigger error condition. On another hand, behaviour of the public C API function
_Py_c_pow()(used in the CPython codebase only forcomplex_pow()) will differ from the pure-python pow()...Other similar functions (
complex_div()andcomplex_abs()) leave settingerrnoto corresponding C-API function.My proposal: move
_Py_ADJUST_ERANGE2()call to_Py_c_pow()andc_powi(). If that does make sense I'll provide a patch.CPython versions tested on:
CPython main branch
Operating systems tested on:
No response
Linked PRs