summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--lib/pure/complex.nim13
1 files changed, 1 insertions, 12 deletions
diff --git a/lib/pure/complex.nim b/lib/pure/complex.nim
index 2ff52455c..1e8349ef6 100644
--- a/lib/pure/complex.nim
+++ b/lib/pure/complex.nim
@@ -163,18 +163,7 @@ func `/`*[T](x: T; y: Complex[T]): Complex[T] =
 
 func `/`*[T](x, y: Complex[T]): Complex[T] =
   ## Divides two complex numbers.
-  var r, den: T
-  if abs(y.re) < abs(y.im):
-    r = y.re / y.im
-    den = y.im + r * y.re
-    result.re = (x.re * r + x.im) / den
-    result.im = (x.im * r - x.re) / den
-  else:
-    r = y.im / y.re
-    den = y.re + r * y.im
-    result.re = (x.re + r * x.im) / den
-    result.im = (x.im - r * x.re) / den
-
+  x * conjugate(y) / abs2(y)
 
 func `+=`*[T](x: var Complex[T]; y: Complex[T]) =
   ## Adds `y` to `x`.