]> gitweb.michael.orlitzky.com - numerical-analysis.git/blobdiff - src/Roots/Simple.hs
Replace the custom 'Vector' typeclass with 'Normed' everywhere.
[numerical-analysis.git] / src / Roots / Simple.hs
index f9b36fad6578733fe8cad0308e573a77aa37640b..6e3ff5153b20a7e6ff7589c6b2c77a1914406e02 100644 (file)
@@ -11,7 +11,7 @@ where
 
 import Data.List (find)
 
-import Vector
+import Normed
 
 import qualified Roots.Fast as F
 
@@ -219,7 +219,7 @@ secant_method f epsilon x0 x1
 --   at x0. We delegate to the version that returns the number of
 --   iterations and simply discard the number of iterations.
 --
-fixed_point :: (Vector a, RealFrac b)
+fixed_point :: (Normed a, RealFrac b)
             => (a -> a) -- ^ The function @f@ to iterate.
             -> b       -- ^ The tolerance, @epsilon@.
             -> a       -- ^ The initial value @x0@.
@@ -232,7 +232,7 @@ fixed_point f epsilon x0 =
 --   the function @f@ with the search starting at x0 and tolerance
 --   @epsilon@. We delegate to the version that returns the number of
 --   iterations and simply discard the fixed point.
-fixed_point_iteration_count :: (Vector a, RealFrac b)
+fixed_point_iteration_count :: (Normed a, RealFrac b)
                             => (a -> a) -- ^ The function @f@ to iterate.
                             -> b       -- ^ The tolerance, @epsilon@.
                             -> a       -- ^ The initial value @x0@.
@@ -250,7 +250,7 @@ fixed_point_iteration_count f epsilon x0 =
 --
 --   This is used to determine the rate of convergence.
 --
-fixed_point_error_ratios :: (Vector a, RealFrac b)
+fixed_point_error_ratios :: (Normed a, RealFrac b)
                    => (a -> a) -- ^ The function @f@ to iterate.
                    -> a       -- ^ The initial value @x0@.
                    -> a       -- ^ The true solution, @x_star@.
@@ -260,6 +260,6 @@ fixed_point_error_ratios f x0 x_star p =
   zipWith (/) en_plus_one en_exp
   where
     xn = F.fixed_point_iterations f x0
-    en = map (\x -> norm_2 (x_star - x)) xn
+    en = map (\x -> norm (x_star - x)) xn
     en_plus_one = tail en
     en_exp = map (^p) en