]> gitweb.michael.orlitzky.com - numerical-analysis.git/blobdiff - src/Roots/Simple.hs
src/Roots/Simple.hs: fix monomorphism restriction warning.
[numerical-analysis.git] / src / Roots / Simple.hs
index a5924f4658d5c6ca8d15fbba6b10c24ed446566b..2906d95839c69daab27580863d8d61bb5f14ccc6 100644 (file)
@@ -1,4 +1,5 @@
 {-# LANGUAGE RebindableSyntax #-}
+{-# LANGUAGE ScopedTypeVariables #-}
 
 -- | The Roots.Simple module contains root-finding algorithms. That
 --   is, procedures to (numerically) find solutions to the equation,
@@ -172,7 +173,7 @@ fixed_point_iteration_count f epsilon x0 =
 --
 --   This is used to determine the rate of convergence.
 --
-fixed_point_error_ratios :: (Normed a,
+fixed_point_error_ratios :: forall a b. (Normed a,
                              Additive.C a,
                              RealField.C b,
                              Algebraic.C b)
@@ -185,7 +186,7 @@ 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 (x_star - x)) xn
+    en = map (\x -> norm (x_star - x)) xn :: [b]
     en_plus_one = tail en
     en_exp = map (^p) en
 
@@ -197,6 +198,7 @@ fixed_point_error_ratios f x0 x_star p =
 --   Examples:
 --
 --   Atkinson, p. 60.
+--
 --   >>> let f x = x^6 - x - 1
 --   >>> let f' x = 6*x^5 - 1
 --   >>> tail $ take 4 $ newton_iterations f f' 2
@@ -283,6 +285,7 @@ iterate2 f x0 x1 =
 --   Examples:
 --
 --   Atkinson, p. 67.
+--
 --   >>> let f x = x^6 - x - 1
 --   >>> take 4 $ secant_iterations f 2 1
 --   [2.0,1.0,1.0161290322580645,1.190577768676638]
@@ -308,6 +311,7 @@ secant_iterations f =
 --   Examples:
 --
 --   Atkinson, p. 67.
+--
 --   >>> let f x = x^6 - x - 1
 --   >>> let Just root = secant_method f (1/10^9) 2 1
 --   >>> root