]> gitweb.michael.orlitzky.com - numerical-analysis.git/blobdiff - src/Vector.hs
Bump to fixed-vector-0.2.*.
[numerical-analysis.git] / src / Vector.hs
index a4d3c13585bfba3b0b06a14506c0b025eb3cc3c4..1aaf78daa42e31ca0eae5e106b52aa3827276882 100644 (file)
@@ -15,12 +15,12 @@ import Data.Vector.Fixed (
   N3,
   N4,
   Vector(..),
-  (!),
   construct,
   inspect,
   toList,
   )
 import qualified Data.Vector.Fixed as V (
+  eq,
   foldl,
   length,
   map,
@@ -81,8 +81,8 @@ instance (Show a, Vector v a) => Show (Vn v a) where
 --   >>> v1 == v3
 --   False
 --
-instance (Eq a, Vector v a, Vector v Bool) => Eq (Vn v a) where
-  (Vn v1) == (Vn v2) = V.foldl (&&) True (V.zipWith (==) v1 v2)
+instance (Eq a, Vector v a) => Eq (Vn v a) where
+  (Vn v1) == (Vn v2) = v1 `V.eq` v2
 
 
 -- | The use of 'Num' here is of course incorrect (otherwise, we
@@ -191,6 +191,17 @@ angle v1 v2 =
     norms = (norm v1) * (norm v2)
 
 
+-- | Unsafe indexing.
+--
+--   Examples:
+--
+--   >>> let v1 = make2d (1,2)
+--   >>> v1 ! 1
+--   2
+--
+(!) :: (Vector v a) => v a -> Int -> a
+(!) v1 idx = (toList v1) !! idx
+
 -- | Safe indexing.
 --
 --   Examples: