summaryrefslogtreecommitdiff
path: root/numpy/core/src
diff options
context:
space:
mode:
authorPauli Virtanen <pav@iki.fi>2009-12-07 22:22:45 +0000
committerPauli Virtanen <pav@iki.fi>2009-12-07 22:22:45 +0000
commit801f2b2eed815d2489acd44ed9c8a7e581a4d433 (patch)
tree9f9fa39a177c07f2851f9e06ac6acc2931142508 /numpy/core/src
parent37f318c8be5c0f0eb7e7d217690446fbbc0d50d2 (diff)
downloadnumpy-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.src15
-rw-r--r--numpy/core/src/scalarmathmodule.c.src2
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;
}