]> gitweb.michael.orlitzky.com - numerical-analysis.git/commitdiff
src/Misc.hs: fix monomorphism restriction warnings.
authorMichael Orlitzky <michael@orlitzky.com>
Fri, 7 Dec 2018 15:19:41 +0000 (10:19 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Fri, 7 Dec 2018 15:19:41 +0000 (10:19 -0500)
src/Misc.hs

index c81d3594fad218bd6d76d224e3aa942071c0a1cf..61c9d69c9613bd39268b10be26a675c7b3d06c02 100644 (file)
@@ -21,23 +21,23 @@ import Algebra.ToInteger ( C )
 --   >>> partition 4 (-1) 1
 --   [(-1.0,-0.5),(-0.5,0.0),(0.0,0.5),(0.5,1.0)]
 --
-partition :: (Algebra.Field.C a, Algebra.ToInteger.C b, Enum b)
+partition :: forall a b. (Algebra.Field.C a, Algebra.ToInteger.C b, Enum b)
           => b -- ^ The number of subintervals to use, @n@
           -> a -- ^ The \"left\" endpoint of the interval, @a@
           -> a -- ^ The \"right\" endpoint of the interval, @b@
           -> [(a,a)]
  -- Somebody asked for zero subintervals? Ok.
 partition 0 _ _ = []
-partition n a b
+partition n x y
   | n < 0 = error "partition: asked for a negative number of subintervals"
   | otherwise =
     [ (xi, xj) | k <- [0..n-1],
-                 let k' = fromIntegral k,
-                 let xi = a + k'*h,
-                 let xj = a + (k'+1)*h ]
+                 let k' = fromIntegral k :: a,
+                 let xi = x + k'*h,
+                 let xj = x + (k'+1)*h ]
     where
-      coerced_n = fromIntegral $ toInteger n
-      h = (b-a)/coerced_n
+      coerced_n = fromIntegral $ toInteger n :: a
+      h = (y-x)/coerced_n
 
 
 -- | Compute the unit roundoff (machine epsilon) for this machine. We