• Tim Peters's avatar
    SF bug 533198: Complex power underflow raises exception. · bab22bed
    Tim Peters yazdı
    Konrad was too kind.  Not only did it raise an exception, the specific
    exception it raised made no sense.  These are old bugs in complex_pow()
    and friends:
    
    1. Raising 0 to a negative power isn't a range error, it's a domain
       error, so changed c_pow() to set errno to EDOM in that case instead
       of ERANGE.
    
    2. Changed complex_pow() to:
    
    A. Used the Py_ADJUST_ERANGE2 macro to try to clear errno of a spurious
       ERANGE error due to underflow in the libm pow() called by c_pow().
    
    B. Produced different exceptions depending on the errno value:
       i) For errno==EDOM, raise ZeroDivisionError instead of ValueError.
          This is for consistency with the non-complex cases 0.0**-2 and
          0**-2 and 0L**-2.
       ii) For errno==ERANGE, raise OverflowError.
    
    Bugfix candidate.
    bab22bed
Adı
Son kayıt (commit)
Son güncelleme
Demo Loading commit data...
Doc Loading commit data...
Grammar Loading commit data...
Include Loading commit data...
Lib Loading commit data...
Mac Loading commit data...
Misc Loading commit data...
Modules Loading commit data...
Objects Loading commit data...
PC Loading commit data...
PCbuild Loading commit data...
Parser Loading commit data...
Python Loading commit data...
RISCOS Loading commit data...
Tools Loading commit data...
.cvsignore Loading commit data...
.hgtags Loading commit data...
LICENSE Loading commit data...
Makefile.pre.in Loading commit data...
PLAN.txt Loading commit data...
README Loading commit data...
acconfig.h Loading commit data...
configure Loading commit data...
configure.in Loading commit data...
install-sh Loading commit data...
pyconfig.h.in Loading commit data...
setup.py Loading commit data...