Merge pull request #2009 from gmpreussner/devel

Added complex conjugate
This commit is contained in:
Dominik Picheta 2015-01-25 12:39:55 +00:00
commit 67e489d4e5

View file

@ -171,6 +171,12 @@ proc abs*(z: Complex): float =
result = y * sqrt(1.0 + temp * temp) result = y * sqrt(1.0 + temp * temp)
proc conjugate*(z: Complex): Complex =
## Conjugate of complex number `z`.
result.re = z.re
result.im = -z.im
proc sqrt*(z: Complex): Complex = proc sqrt*(z: Complex): Complex =
## Square root for a complex number `z`. ## Square root for a complex number `z`.
var x, y, w, r: float var x, y, w, r: float
@ -315,6 +321,7 @@ when isMainModule:
assert( oo+(-1.0) == i ) assert( oo+(-1.0) == i )
assert( (-1.0)+oo == i ) assert( (-1.0)+oo == i )
assert( abs(oo) == sqrt(2.0) ) assert( abs(oo) == sqrt(2.0) )
assert( conjugate(a) == (1.0, -2.0) )
assert( sqrt(m1) == i ) assert( sqrt(m1) == i )
assert( exp(ipi) =~ m1 ) assert( exp(ipi) =~ m1 )
@ -340,4 +347,3 @@ when isMainModule:
assert( cosh(a) =~ (-0.642148124715520, 1.068607421382778) ) assert( cosh(a) =~ (-0.642148124715520, 1.068607421382778) )
assert( sinh(a) =~ (-0.489056259041294, 1.403119250622040) ) assert( sinh(a) =~ (-0.489056259041294, 1.403119250622040) )