]> gitweb.michael.orlitzky.com - numerical-analysis.git/commitdiff
Fix compiler warnings and doctests.
authorMichael Orlitzky <michael@orlitzky.com>
Thu, 21 Feb 2013 04:08:56 +0000 (23:08 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Thu, 21 Feb 2013 04:08:56 +0000 (23:08 -0500)
src/BigFloat.hs
src/Integration/Simpson.hs
src/Integration/Trapezoid.hs
src/Linear/Matrix.hs
src/Linear/Vector.hs
src/Normed.hs
src/ODE/IVP.hs
src/Roots/Fast.hs
src/Roots/Simple.hs

index 0bebab9659a2fd8ee22358a39c676661e2fba827..4c57aadeb1e5f851976cc30414e0a7c6edf3fcea 100644 (file)
@@ -1,7 +1,8 @@
 {-# LANGUAGE RebindableSyntax #-}
 
 module BigFloat
 {-# LANGUAGE RebindableSyntax #-}
 
 module BigFloat
-  (module Data.Number.BigFloat)
+  (module Data.Number.BigFloat,
+   R)
 where
 
 import Data.Number.BigFloat
 where
 
 import Data.Number.BigFloat
index c3d59ff797c0538c377a08196065a63b43178003..c9ad414b4fa7cc85705af2604d2295524ceeb01e 100644 (file)
@@ -6,10 +6,7 @@ where
 import Misc (partition)
 
 import NumericPrelude hiding (abs)
 import Misc (partition)
 
 import NumericPrelude hiding (abs)
-import Algebra.Absolute (abs)
-import qualified Algebra.Field as Field
 import qualified Algebra.RealField as RealField
 import qualified Algebra.RealField as RealField
-import qualified Algebra.RealRing as RealRing
 import qualified Algebra.ToInteger as ToInteger
 import qualified Algebra.ToRational as ToRational
 
 import qualified Algebra.ToInteger as ToInteger
 import qualified Algebra.ToRational as ToRational
 
@@ -26,6 +23,7 @@ import qualified Algebra.ToRational as ToRational
 --   >>> simpson_1 f (-1) 1
 --   0.0
 --
 --   >>> simpson_1 f (-1) 1
 --   0.0
 --
+--   >>> import Algebra.Absolute (abs)
 --   >>> let f x = x^2
 --   >>> let area = simpson_1 f (-1) 1
 --   >>> abs (area - (2/3)) < 1/10^12
 --   >>> let f x = x^2
 --   >>> let area = simpson_1 f (-1) 1
 --   >>> abs (area - (2/3)) < 1/10^12
@@ -56,6 +54,7 @@ simpson_1 f a b =
 --
 --   Examples:
 --
 --
 --   Examples:
 --
+--   >>> import Algebra.Absolute (abs)
 --   >>> let f x = x^4
 --   >>> let area = simpson 10 f (-1) 1
 --   >>> abs (area - (2/5)) < 0.0001
 --   >>> let f x = x^4
 --   >>> let area = simpson 10 f (-1) 1
 --   >>> abs (area - (2/5)) < 0.0001
@@ -64,6 +63,7 @@ simpson_1 f a b =
 --   Note that the convergence here is much faster than the Trapezoid
 --   rule!
 --
 --   Note that the convergence here is much faster than the Trapezoid
 --   rule!
 --
+--   >>> import Algebra.Absolute (abs)
 --   >>> let area = simpson 10 sin 0 pi
 --   >>> abs (area - 2) < 0.00001
 --   True
 --   >>> let area = simpson 10 sin 0 pi
 --   >>> abs (area - 2) < 0.00001
 --   True
index c358feffec5d536f913d8e3a1c080391b17762d4..444d92d2eb9a0ed2e6911970f54cd88aafd71b3a 100644 (file)
@@ -6,10 +6,8 @@ where
 import Misc (partition)
 
 import NumericPrelude hiding (abs)
 import Misc (partition)
 
 import NumericPrelude hiding (abs)
-import Algebra.Absolute (abs)
 import qualified Algebra.Field as Field
 import qualified Algebra.RealField as RealField
 import qualified Algebra.Field as Field
 import qualified Algebra.RealField as RealField
-import qualified Algebra.RealRing as RealRing
 import qualified Algebra.ToInteger as ToInteger
 import qualified Algebra.ToRational as ToRational
 
 import qualified Algebra.ToInteger as ToInteger
 import qualified Algebra.ToRational as ToRational
 
@@ -48,11 +46,13 @@ trapezoid_1 f a b =
 --
 --   Examples:
 --
 --
 --   Examples:
 --
+--   >>> import Algebra.Absolute (abs)
 --   >>> let f x = x^2
 --   >>> let area = trapezoid 1000 f (-1) 1
 --   >>> abs (area - (2/3)) < 0.00001
 --   True
 --
 --   >>> let f x = x^2
 --   >>> let area = trapezoid 1000 f (-1) 1
 --   >>> abs (area - (2/3)) < 0.00001
 --   True
 --
+--   >>> import Algebra.Absolute (abs)
 --   >>> let area = trapezoid 1000 sin 0 pi
 --   >>> abs (area - 2) < 0.0001
 --   True
 --   >>> let area = trapezoid 1000 sin 0 pi
 --   >>> abs (area - 2) < 0.0001
 --   True
index ef0e9b6ff3ccba65c310b81126ea915d543e0411..4f2e845da6b97380b703441c1fc6963c568cb943 100644 (file)
@@ -16,20 +16,16 @@ import Data.Vector.Fixed (
   Vector
   )
 import qualified Data.Vector.Fixed as V (
   Vector
   )
 import qualified Data.Vector.Fixed as V (
-  Fun(..),
   N1,
   and,
   N1,
   and,
-  eq,
-  foldl,
   fromList,
   length,
   map,
   fromList,
   length,
   map,
-  maximum,
   replicate,
   toList,
   zipWith
   )
   replicate,
   toList,
   zipWith
   )
-import Data.Vector.Fixed.Internal (Arity, arity, S, Dim)
+import Data.Vector.Fixed.Internal (Arity, arity, S)
 import Linear.Vector
 import Normed
 
 import Linear.Vector
 import Normed
 
@@ -37,13 +33,9 @@ import NumericPrelude hiding ((*), abs)
 import qualified NumericPrelude as NP ((*))
 import qualified Algebra.Algebraic as Algebraic
 import Algebra.Algebraic (root)
 import qualified NumericPrelude as NP ((*))
 import qualified Algebra.Algebraic as Algebraic
 import Algebra.Algebraic (root)
-import qualified Algebra.Absolute as Absolute
 import qualified Algebra.Additive as Additive
 import qualified Algebra.Ring as Ring
 import qualified Algebra.Additive as Additive
 import qualified Algebra.Ring as Ring
-import Algebra.Absolute (abs)
-import qualified Algebra.Field as Field
 import qualified Algebra.Module as Module
 import qualified Algebra.Module as Module
-import qualified Algebra.RealField as RealField
 import qualified Algebra.RealRing as RealRing
 import qualified Algebra.ToRational as ToRational
 import qualified Algebra.Transcendental as Transcendental
 import qualified Algebra.RealRing as RealRing
 import qualified Algebra.ToRational as ToRational
 import qualified Algebra.Transcendental as Transcendental
@@ -294,7 +286,7 @@ instance (Ring.C a,
          => Ring.C (Mat v w a) where
   -- The first * is ring multiplication, the second is matrix
   -- multiplication.
          => Ring.C (Mat v w a) where
   -- The first * is ring multiplication, the second is matrix
   -- multiplication.
-  m1 * m2 = m1 * m1
+  m1 * m2 = m1 * m2
 
 
 instance (Ring.C a,
 
 
 instance (Ring.C a,
@@ -359,13 +351,13 @@ instance (Algebraic.C a,
 --
 --   >>> import Roots.Simple
 --   >>> let h = 0.5 :: Double
 --
 --   >>> import Roots.Simple
 --   >>> let h = 0.5 :: Double
---   >>> let g1 (Mat (D2 (D1 x) (D1 y))) = 1.0 + h*exp(-(x^2))/(1.0 + y^2)
---   >>> let g2 (Mat (D2 (D1 x) (D1 y))) = 0.5 + h*atan(x^2 + y^2)
+--   >>> let g1 (Mat (D2 (D1 x) (D1 y))) = 1.0 + h NP.* exp(-(x^2))/(1.0 + y^2)
+--   >>> let g2 (Mat (D2 (D1 x) (D1 y))) = 0.5 + h NP.* atan(x^2 + y^2)
 --   >>> let g u = vec2d ((g1 u), (g2 u))
 --   >>> let u0 = vec2d (1.0, 1.0)
 --   >>> let eps = 1/(10^9)
 --   >>> fixed_point g eps u0
 --   >>> let g u = vec2d ((g1 u), (g2 u))
 --   >>> let u0 = vec2d (1.0, 1.0)
 --   >>> let eps = 1/(10^9)
 --   >>> fixed_point g eps u0
---   (1.0728549599342185,1.0820591495686167)
+--   ((1.0728549599342185),(1.0820591495686167))
 --
 vec2d :: (a,a) -> Mat D2 D1 a
 vec2d (x,y) = Mat (D2 (D1 x) (D1 y))
 --
 vec2d :: (a,a) -> Mat D2 D1 a
 vec2d (x,y) = Mat (D2 (D1 x) (D1 y))
index d728334db0c05d75e85b057bb01f992b008e3e9a..aba9e5fb2d28d3d5ae43665ca95353f3cc8b6fd5 100644 (file)
@@ -7,7 +7,6 @@
 module Linear.Vector
 where
 
 module Linear.Vector
 where
 
-import Data.List (intercalate)
 import Data.Vector.Fixed (
   Dim,
   Fun(..),
 import Data.Vector.Fixed (
   Dim,
   Fun(..),
@@ -24,8 +23,6 @@ import qualified Data.Vector.Fixed as V (
   length,
   )
 
   length,
   )
 
-import Normed
-
 
 -- * Low-dimension vector wrappers.
 --
 
 -- * Low-dimension vector wrappers.
 --
index 3752edc04b9fef7fa04f3ec5fd9a074d5789a0bb..8b4829538b8a8064bafa15928c86641280f1dfd5 100644 (file)
@@ -13,7 +13,6 @@ import Algebra.Absolute (abs)
 import qualified Algebra.Absolute as Absolute
 import qualified Algebra.Algebraic as Algebraic
 import qualified Algebra.RealField as RealField
 import qualified Algebra.Absolute as Absolute
 import qualified Algebra.Algebraic as Algebraic
 import qualified Algebra.RealField as RealField
-import qualified Algebra.RealRing as RealRing
 import qualified Algebra.ToInteger as ToInteger
 
 -- Since the norm is defined on a vector space, we should be able to
 import qualified Algebra.ToInteger as ToInteger
 
 -- Since the norm is defined on a vector space, we should be able to
index b4fd3dc5a37d32b29ef020a06bba47e0ef4de3ba..615c668367bd6a26e22567ed0f70a0f90da6e7c0 100644 (file)
@@ -14,7 +14,6 @@ where
 
 import Misc (partition)
 import NumericPrelude hiding (abs)
 
 import Misc (partition)
 import NumericPrelude hiding (abs)
-import Algebra.Absolute (abs)
 import qualified Algebra.Field as Field
 import qualified Algebra.ToInteger as ToInteger
 import qualified Algebra.ToRational as ToRational
 import qualified Algebra.Field as Field
 import qualified Algebra.ToInteger as ToInteger
 import qualified Algebra.ToRational as ToRational
@@ -54,6 +53,7 @@ eulers_method1 x0 y0 f h =
 --
 --   Examples:
 --
 --
 --   Examples:
 --
+--   >>> import Algebra.Absolute (abs)
 --   >>> let x0 = 0.0
 --   >>> let xN = 1.0
 --   >>> let y0 = 1.0
 --   >>> let x0 = 0.0
 --   >>> let xN = 1.0
 --   >>> let y0 = 1.0
index 0deb1fd6237a5909ea7d15a252f09b524093d1bf..b3b5818782fede0db3e6b465dc9186d8e29a1ca5 100644 (file)
@@ -16,7 +16,6 @@ import NumericPrelude hiding (abs)
 import qualified Algebra.Absolute as Absolute
 import qualified Algebra.Additive as Additive
 import qualified Algebra.Algebraic as Algebraic
 import qualified Algebra.Absolute as Absolute
 import qualified Algebra.Additive as Additive
 import qualified Algebra.Algebraic as Algebraic
-import qualified Algebra.Field as Field
 import qualified Algebra.RealRing as RealRing
 import qualified Algebra.RealField as RealField
 
 import qualified Algebra.RealRing as RealRing
 import qualified Algebra.RealField as RealField
 
@@ -118,7 +117,7 @@ fixed_point_iterations f x0 =
 --   We also return the number of iterations required.
 --
 fixed_point_with_iterations :: (Normed a,
 --   We also return the number of iterations required.
 --
 fixed_point_with_iterations :: (Normed a,
-                                Algebraic.C a,
+                                Additive.C a,
                                 RealField.C b,
                                 Algebraic.C b)
                             => (a -> a)  -- ^ The function @f@ to iterate.
                                 RealField.C b,
                                 Algebraic.C b)
                             => (a -> a)  -- ^ The function @f@ to iterate.
index d3c10cd8a3dfb95c001aeb5ce244b1bc7f14f7ed..414b77787262e608ceef4a66981a5dc5ab82cc50 100644 (file)
@@ -18,7 +18,6 @@ import Normed
 import qualified Roots.Fast as F
 
 import NumericPrelude hiding (abs)
 import qualified Roots.Fast as F
 
 import NumericPrelude hiding (abs)
-import qualified Algebra.Absolute as Absolute
 import Algebra.Absolute (abs)
 import qualified Algebra.Additive as Additive
 import qualified Algebra.Algebraic as Algebraic
 import Algebra.Absolute (abs)
 import qualified Algebra.Additive as Additive
 import qualified Algebra.Algebraic as Algebraic
@@ -89,7 +88,7 @@ bisect f a b epsilon =
 --   at x0. We delegate to the version that returns the number of
 --   iterations and simply discard the number of iterations.
 --
 --   at x0. We delegate to the version that returns the number of
 --   iterations and simply discard the number of iterations.
 --
-fixed_point :: (Normed a, Algebraic.C a, Algebraic.C b, RealField.C b)
+fixed_point :: (Normed a, Additive.C a, Algebraic.C b, RealField.C b)
             => (a -> a) -- ^ The function @f@ to iterate.
             -> b       -- ^ The tolerance, @epsilon@.
             -> a       -- ^ The initial value @x0@.
             => (a -> a) -- ^ The function @f@ to iterate.
             -> b       -- ^ The tolerance, @epsilon@.
             -> a       -- ^ The initial value @x0@.
@@ -103,7 +102,7 @@ fixed_point f epsilon x0 =
 --   @epsilon@. We delegate to the version that returns the number of
 --   iterations and simply discard the fixed point.
 fixed_point_iteration_count :: (Normed a,
 --   @epsilon@. We delegate to the version that returns the number of
 --   iterations and simply discard the fixed point.
 fixed_point_iteration_count :: (Normed a,
-                                Algebraic.C a,
+                                Additive.C a,
                                 RealField.C b,
                                 Algebraic.C b)
                             => (a -> a) -- ^ The function @f@ to iterate.
                                 RealField.C b,
                                 Algebraic.C b)
                             => (a -> a) -- ^ The function @f@ to iterate.