diff options
-rw-r--r-- | numpy/core/src/umath/loops.c.src | 10 |
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; } } |