]> gitweb.michael.orlitzky.com - numerical-analysis.git/commitdiff
Make the partition function work with numeric-prelude.
authorMichael Orlitzky <michael@orlitzky.com>
Wed, 20 Feb 2013 19:31:41 +0000 (14:31 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Wed, 20 Feb 2013 19:31:41 +0000 (14:31 -0500)
src/Misc.hs

index 4d8f3e7f10f81f2abdd7e0fd9379e9192bc4b897..24fd5b756febd19bd512cf9a7b06682f2aba9f7d 100644 (file)
@@ -1,7 +1,13 @@
+{-# LANGUAGE RebindableSyntax #-}
+
 -- | Stuff for which I'm too lazy to come up with a decent name.
 module Misc
 where
 
+import NumericPrelude
+import Algebra.Field
+import Algebra.ToInteger
+
 -- | Partition the interval [@a@, @b@] into @n@ subintervals, which we
 --   then return as a list of pairs.
 --
@@ -13,7 +19,7 @@ where
 --   >>> partition 4 (-1) 1
 --   [(-1.0,-0.5),(-0.5,0.0),(0.0,0.5),(0.5,1.0)]
 --
-partition :: (RealFrac a, Integral b)
+partition :: (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@
@@ -28,4 +34,4 @@ partition n a b
                  let xi = a + k'*h,
                  let xj = a + (k'+1)*h ]
     where
-      h = fromRational $ (toRational (b-a))/(toRational n)
+      h = (b-a)/(fromIntegral $ toInteger n)