mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
Simpler complex division implementation (#20088)
This commit is contained in:
@@ -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`.
|
||||
|
||||
Reference in New Issue
Block a user