summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/core/src/umath/loops.c.src10
1 files changed, 4 insertions, 6 deletions
diff --git a/numpy/core/src/umath/loops.c.src b/numpy/core/src/umath/loops.c.src
index 1a29e6904..216fa5fc3 100644
--- a/numpy/core/src/umath/loops.c.src
+++ b/numpy/core/src/umath/loops.c.src
@@ -1110,13 +1110,13 @@ C@TYPE@_divide(char **args, intp *dimensions, intp *steps, void *NPY_UNUSED(func
const @type@ in2i = ((@type@ *)ip2)[1];
if (fabs@c@(in2r) >= fabs@c@(in2i)) {
const @type@ rat = in2i/in2r;
- const @type@ scl = 1/(in2r + in2i*rat);
+ const @type@ scl = 1.0@c@/(in2r + in2i*rat);
((@type@ *)op1)[0] = (in1r + in1i*rat)*scl;
((@type@ *)op1)[1] = (in1i - in1r*rat)*scl;
}
else {
const @type@ rat = in2r/in2i;
- const @type@ scl = 1/(in2i + in2r*rat);
+ const @type@ scl = 1.0@c@/(in2i + in2r*rat);
((@type@ *)op1)[0] = (in1r*rat + in1i)*scl;
((@type@ *)op1)[1] = (in1i*rat - in1r)*scl;
}
@@ -1133,14 +1133,12 @@ C@TYPE@_floor_divide(char **args, intp *dimensions, intp *steps, void *NPY_UNUSE
const @type@ in2i = ((@type@ *)ip2)[1];
if (fabs@c@(in2r) >= fabs@c@(in2i)) {
const @type@ rat = in2i/in2r;
- const @type@ scl = 1/(in2r + in2i*rat);
- ((@type@ *)op1)[0] = npy_floor@c@((in1r + in1i*rat)*scl);
+ ((@type@ *)op1)[0] = npy_floor@c@((in1r + in1i*rat)/(in2r + in2i*rat));
((@type@ *)op1)[1] = 0;
}
else {
const @type@ rat = in2r/in2i;
- const @type@ scl = 1/(in2i + in2r*rat);
- ((@type@ *)op1)[0] = npy_floor@c@((in1r*rat + in1i)*scl);
+ ((@type@ *)op1)[0] = npy_floor@c@((in1r*rat + in1i)/(in2i + in2r*rat));
((@type@ *)op1)[1] = 0;
}
}