]> gitweb.michael.orlitzky.com - numerical-analysis.git/blobdiff - src/Linear/System.hs
Clean up imports everywhere.
[numerical-analysis.git] / src / Linear / System.hs
index 58d8d78e7a6fe866751109a1c1dfb1610eeeb728..2d75f611de1dc85825677ce59e72fe008bdbd21d 100644 (file)
@@ -2,16 +2,17 @@
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE TypeFamilies #-}
 
-module Linear.System
+module Linear.System (
+  backward_substitute,
+  forward_substitute )
 where
 
-import Data.Vector.Fixed (Arity, N1)
+import Data.Vector.Fixed ( Arity, N1 )
+import NumericPrelude hiding ( (*), abs )
+import qualified NumericPrelude as NP ( (*) )
+import qualified Algebra.Field as Field ( C )
 
-import Linear.Matrix
-
-import NumericPrelude hiding ((*), abs)
-import qualified NumericPrelude as NP ((*))
-import qualified Algebra.Field as Field
+import Linear.Matrix ( Mat(..), (!!!), construct, transpose )
 
 
 -- | Solve the system m' * x = b', where m' is upper-triangular. Will
@@ -19,6 +20,8 @@ import qualified Algebra.Field as Field
 --
 --   Examples:
 --
+--   >>> import Linear.Matrix ( Mat2, Mat3, fromList, vec2d, vec3d )
+--
 --   >>> let identity = fromList [[1,0,0],[0,1,0],[0,0,1]] :: Mat3 Double
 --   >>> let b = vec3d (1, 2, 3::Double)
 --   >>> forward_substitute identity b
@@ -31,6 +34,11 @@ import qualified Algebra.Field as Field
 --   >>> forward_substitute m b
 --   ((1.0),(0.0))
 --
+--   >>> let m = fromList [[4,0],[0,2]] :: Mat2 Double
+--   >>> let b = vec2d (2, 1.5 :: Double)
+--   >>> forward_substitute m b
+--   ((0.5),(0.75))
+--
 forward_substitute :: forall a m. (Field.C a, Arity m)
                    => Mat m m a
                    -> Mat m N1 a
@@ -64,6 +72,8 @@ forward_substitute m' b' = x'
 --
 --   Examples:
 --
+--   >>> import Linear.Matrix ( Mat3, fromList, vec3d )
+--
 --   >>> let identity = fromList [[1,0,0],[0,1,0],[0,0,1]] :: Mat3 Double
 --   >>> let b = vec3d (1, 2, 3::Double)
 --   >>> backward_substitute identity b
@@ -75,8 +85,8 @@ backward_substitute :: (Field.C a, Arity m)
                     => Mat m m a
                     -> Mat m N1 a
                     -> Mat m N1 a
-backward_substitute m =
-  forward_substitute (transpose m) b
+backward_substitute m =
+  forward_substitute (transpose m)
 
 
 -- | Solve the linear system m*x = b where m is positive definite.