`M-x delete-trailing-whitespace`
[packages/haskell2010.git] / Data / Complex.hs
index 2b575fb..abc84fc 100644 (file)
@@ -27,39 +27,39 @@ import "base" Data.Complex
 {- $code
 > module Data.Complex(Complex((:+)), realPart, imagPart, conjugate, mkPolar,
 >                     cis, polar, magnitude, phase)  where
-> 
+>
 > infix  6  :+
-> 
+>
 > data  (RealFloat a)     => Complex a = !a :+ !a  deriving (Eq,Read,Show)
-> 
-> 
+>
+>
 > realPart, imagPart :: (RealFloat a) => Complex a -> a
 > realPart (x:+y)        =  x
 > imagPart (x:+y)        =  y
-> 
+>
 > conjugate      :: (RealFloat a) => Complex a -> Complex a
 > conjugate (x:+y) =  x :+ (-y)
-> 
+>
 > mkPolar                :: (RealFloat a) => a -> a -> Complex a
 > mkPolar r theta        =  r * cos theta :+ r * sin theta
-> 
+>
 > cis            :: (RealFloat a) => a -> Complex a
 > cis theta      =  cos theta :+ sin theta
-> 
+>
 > polar          :: (RealFloat a) => Complex a -> (a,a)
 > polar z                =  (magnitude z, phase z)
-> 
+>
 > magnitude :: (RealFloat a) => Complex a -> a
 > magnitude (x:+y) =  scaleFloat k
 >                    (sqrt ((scaleFloat mk x)^2 + (scaleFloat mk y)^2))
 >                   where k  = max (exponent x) (exponent y)
 >                         mk = - k
-> 
+>
 > phase :: (RealFloat a) => Complex a -> a
 > phase (0 :+ 0) = 0
 > phase (x :+ y) = atan2 y x
-> 
-> 
+>
+>
 > instance  (RealFloat a) => Num (Complex a)  where
 >     (x:+y) + (x':+y') =  (x+x') :+ (y+y')
 >     (x:+y) - (x':+y') =  (x-x') :+ (y-y')
@@ -69,7 +69,7 @@ import "base" Data.Complex
 >     signum 0          =  0
 >     signum z@(x:+y)   =  x/r :+ y/r  where r = magnitude z
 >     fromInteger n     =  fromInteger n :+ 0
-> 
+>
 > instance  (RealFloat a) => Fractional (Complex a)  where
 >     (x:+y) / (x':+y') =  (x*x''+y*y'') / d :+ (y*x''-x*y'') / d
 >                          where x'' = scaleFloat k x'
@@ -78,19 +78,19 @@ import "base" Data.Complex
 >                                d   = x'*x'' + y'*y''
 >
 >     fromRational a    =  fromRational a :+ 0
-> 
+>
 > instance  (RealFloat a) => Floating (Complex a)       where
 >     pi             =  pi :+ 0
 >     exp (x:+y)     =  expx * cos y :+ expx * sin y
 >                       where expx = exp x
 >     log z          =  log (magnitude z) :+ phase z
-> 
+>
 >     sqrt 0         =  0
 >     sqrt z@(x:+y)  =  u :+ (if y < 0 then -v else v)
 >                       where (u,v) = if x < 0 then (v',u') else (u',v')
 >                             v'    = abs y / (u'*2)
 >                             u'    = sqrt ((magnitude z + abs x) / 2)
-> 
+>
 >     sin (x:+y)     =  sin x * cosh y :+ cos x * sinh y
 >     cos (x:+y)     =  cos x * cosh y :+ (- sin x * sinh y)
 >     tan (x:+y)     =  (sinx*coshy:+cosx*sinhy)/(cosx*coshy:+(-sinx*sinhy))
@@ -98,7 +98,7 @@ import "base" Data.Complex
 >                             cosx  = cos x
 >                             sinhy = sinh y
 >                             coshy = cosh y
-> 
+>
 >     sinh (x:+y)    =  cos y * sinh x :+ sin  y * cosh x
 >     cosh (x:+y)    =  cos y * cosh x :+ sin y * sinh x
 >     tanh (x:+y)    =  (cosy*sinhx:+siny*coshx)/(cosy*coshx:+siny*sinhx)
@@ -106,7 +106,7 @@ import "base" Data.Complex
 >                             cosy  = cos y
 >                             sinhx = sinh x
 >                             coshx = cosh x
-> 
+>
 >     asin z@(x:+y)  =  y':+(-x')
 >                       where  (x':+y') = log (((-y):+x) + sqrt (1 - z*z))
 >     acos z@(x:+y)  =  y'':+(-x'')
@@ -114,7 +114,7 @@ import "base" Data.Complex
 >                             (x':+y')   = sqrt (1 - z*z)
 >     atan z@(x:+y)  =  y':+(-x')
 >                       where (x':+y') = log (((1-y):+x) / sqrt (1+z*z))
-> 
+>
 >     asinh z        =  log (z + sqrt (1+z*z))
 >     acosh z        =  log (z + (z+1) * sqrt ((z-1)/(z+1)))
 >     atanh z        =  log ((1+z) / sqrt (1-z*z))