Implement complex sgn (#20087)

Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>
This commit is contained in:
Dan Rose
2022-08-28 21:17:18 -05:00
committed by GitHub
parent 04642335c1
commit cc81866da1

View File

@@ -81,6 +81,13 @@ func abs2*[T](z: Complex[T]): T =
## that is the squared distance from (0, 0) to `z`.
## This is more efficient than `abs(z) ^ 2`.
result = z.re * z.re + z.im * z.im
func sgn*[T](z: Complex[T]): Complex[T] =
## Returns the phase of `z` as a unit complex number,
## or 0 if `z` is 0.
let a = abs(z)
if a != 0:
result = z / a
func conjugate*[T](z: Complex[T]): Complex[T] =
## Returns the complex conjugate of `z` (`complex(z.re, -z.im)`).