N3,
N4,
Vector(..),
- (!),
construct,
inspect,
toList,
)
import qualified Data.Vector.Fixed as V (
+ eq,
foldl,
length,
map,
-- >>> 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
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: