X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FLinear%2FMatrix.hs;h=90a97b2c0b3387fd1ae896ab5b5c607f860058dc;hb=1e50b14bbdb48fbb63c487c66f5594fa20d58350;hp=2422eefcb7e269de1e5104ddb1c559b4c5c73e34;hpb=ba5fa4536b8171dd58afe38176da0b9c37032103;p=numerical-analysis.git diff --git a/src/Linear/Matrix.hs b/src/Linear/Matrix.hs index 2422eef..90a97b2 100644 --- a/src/Linear/Matrix.hs +++ b/src/Linear/Matrix.hs @@ -579,7 +579,8 @@ instance (Ring.C a, Arity m, Arity n) => Module.C a (Mat m n a) where x *> (Mat rows) = Mat $ V.map (V.map (NP.* x)) rows -instance (Algebraic.C a, +instance (Absolute.C a, + Algebraic.C a, ToRational.C a, Arity m) => Normed (Mat (S m) N1 a) where @@ -594,8 +595,12 @@ instance (Algebraic.C a, -- >>> norm_p 2 v1 -- 5.0 -- + -- >>> let v1 = vec2d (-1,1) :: Col2 Double + -- >>> norm_p 1 v1 :: Double + -- 2.0 + -- norm_p p (Mat rows) = - (root p') $ sum [fromRational' (toRational x)^p' | x <- xs] + (root p') $ sum [fromRational' (toRational $ abs x)^p' | x <- xs] where p' = toInteger p xs = concat $ V.toList $ V.map V.toList rows