on master help sign in
Merge pull request #4477 from ejenk/fix/master/my_contrib

Enabled Fractional instance for Complex a

commitbbeb2a98c2dab305355a117d09c07e849a6702a4 authorNiklas Larsson <metaniklas@gmail.com> dateMon 16 Jul 2018, 21:35 (8 years ago) parent3bf788a0e44aa5
1 file changed+7−12
libs/base/Data/Complex.idr+7−12
libs/base/Data/Complex.idr+7−12
@@ -27,18 +27,6 @@ implementation Show a => Show (Complex a) where
2727 plus_i = User 6
2828
2929
30−-- when we have an interface 'Fractional' (which contains Double),
31−-- we can do:
32−{-
33−implementation Fractional a => Fractional (Complex a) where
34− (/) (a:+b) (c:+d) = let
35− real = (a*c+b*d)/(c*c+d*d)
36− imag = (b*c-a*d)/(c*c+d*d)
37− in
38− (real:+imag)
39−-}
40−
41−
4230
4331------------------------------ Polarform
4432
@@ -78,3 +66,10 @@ implementation Neg a => Neg (Complex a) where
7866-- operates on Double.
7967implementation Abs (Complex Double) where
8068 abs (a:+b) = (magnitude (a:+b):+0)
69+
70+implementation (Neg a, Fractional a) => Fractional (Complex a) where
71+ (/) (a:+b) (c:+d) = let
72+ real = (a*c+b*d)/(c*c+d*d)
73+ imag = (b*c-a*d)/(c*c+d*d)
74+ in
75+ (real:+imag)