diff options
author | Pauli Virtanen <pav@iki.fi> | 2009-12-07 22:22:45 +0000 |
---|---|---|
committer | Pauli Virtanen <pav@iki.fi> | 2009-12-07 22:22:45 +0000 |
commit | 801f2b2eed815d2489acd44ed9c8a7e581a4d433 (patch) | |
tree | 9f9fa39a177c07f2851f9e06ac6acc2931142508 /numpy/core/src | |
parent | 37f318c8be5c0f0eb7e7d217690446fbbc0d50d2 (diff) | |
download | numpy-801f2b2eed815d2489acd44ed9c8a7e581a4d433.tar.gz |
BUG: Fix bugs in complex pow (fixes #1313)
Thanks to Francesc Alted.
Diffstat (limited to 'numpy/core/src')
-rw-r--r-- | numpy/core/src/npymath/npy_math_complex.c.src | 15 | ||||
-rw-r--r-- | numpy/core/src/scalarmathmodule.c.src | 2 |
2 files changed, 8 insertions, 9 deletions
diff --git a/numpy/core/src/npymath/npy_math_complex.c.src b/numpy/core/src/npymath/npy_math_complex.c.src index 583328782..b954e93a9 100644 --- a/numpy/core/src/npymath/npy_math_complex.c.src +++ b/numpy/core/src/npymath/npy_math_complex.c.src @@ -195,17 +195,16 @@ #ifndef HAVE_CPOW@C@ @ctype@ npy_cpow@c@ (@ctype@ x, @ctype@ y) { - @ctype@ b, p; - @type@ bx, by, px, py; + @ctype@ b; + @type@ br, bi, yr, yi; + yr = npy_creal@c@(y); + yi = npy_cimag@c@(y); b = npy_clog@c@(x); - p = npy_clog@c@(y); - bx = npy_creal@c@(b); - by = npy_cimag@c@(b); - px = npy_creal@c@(p); - py = npy_cimag@c@(p); + br = npy_creal@c@(b); + bi = npy_cimag@c@(b); - return npy_cexp@c@(npy_cpack@c@(bx * px - by * py, bx * py + by * px)); + return npy_cexp@c@(npy_cpack@c@(br * yr - bi * yi, br * yi + bi * yr)); } #endif diff --git a/numpy/core/src/scalarmathmodule.c.src b/numpy/core/src/scalarmathmodule.c.src index d2be8d69c..5e8cd812f 100644 --- a/numpy/core/src/scalarmathmodule.c.src +++ b/numpy/core/src/scalarmathmodule.c.src @@ -806,7 +806,7 @@ static PyObject * * as a function call. */ #if @cmplx@ - if (arg2.real == 0 && arg1.real == 0) { + if (arg2.real == 0 && arg2.imag == 0) { out1.real = out.real = 1; out1.imag = out.imag = 0; } |