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
- -- | Generic p-norms for vectors in R^n that are represented as nx1
+ => Normed (Col (S m) a) where
+ -- | Generic p-norms for vectors in R^n that are represented as n-by-1
-- matrices.
--
-- Examples:
-- >>> 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
-- >>> zip2 m1 m2
-- (((1,1),(2,1)),((3,1),(4,1)))
--
-zip2 :: (Arity m, Arity n) => Mat m n a -> Mat m n a -> Mat m n (a,a)
+zip2 :: (Arity m, Arity n) => Mat m n a -> Mat m n b -> Mat m n (a,b)
zip2 m1 m2 =
construct lambda
where