X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FLinear%2FMatrix.hs;h=4f2e845da6b97380b703441c1fc6963c568cb943;hb=d86da7a71b498a24b544ded9ad7191707fd0a123;hp=ef0e9b6ff3ccba65c310b81126ea915d543e0411;hpb=2d0ecad8695e129443e53311d6494b2465f1a672;p=numerical-analysis.git diff --git a/src/Linear/Matrix.hs b/src/Linear/Matrix.hs index ef0e9b6..4f2e845 100644 --- a/src/Linear/Matrix.hs +++ b/src/Linear/Matrix.hs @@ -16,20 +16,16 @@ import Data.Vector.Fixed ( Vector ) import qualified Data.Vector.Fixed as V ( - Fun(..), N1, and, - eq, - foldl, fromList, length, map, - maximum, 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 @@ -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 Algebra.Absolute as Absolute 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.RealField as RealField 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. - m1 * m2 = m1 * m1 + m1 * m2 = m1 * m2 instance (Ring.C a, @@ -359,13 +351,13 @@ instance (Algebraic.C a, -- -- >>> 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 --- (1.0728549599342185,1.0820591495686167) +-- ((1.0728549599342185),(1.0820591495686167)) -- vec2d :: (a,a) -> Mat D2 D1 a vec2d (x,y) = Mat (D2 (D1 x) (D1 y))