@@ -0,0 +1,36 @@
6+------------------------------ General
9+data Complex a = (:+) a a
11+realPart : Complex a -> a
14+imagPart : Complex a -> a
18+------------------------------ Polarform
20+mkPolar : Float -> Float -> Complex Float
21+mkPolar radius angle = radius * cos angle :+ radius * sin angle
23+cis : Float -> Complex Float
24+cis angle = cos angle :+ sin angle
26+magnitude : Complex Float -> Float
27+magnitude (r:+i) = sqrt (r*r+i*i)
29+phase : Complex Float -> Float
30+phase (x:+y) = atan2 y x
33+------------------------------ Conjugate
35+conjugate : Num a => Complex a -> Complex a
36+conjugate (r:+i) = (r :+ (0-i))