]> gitweb.michael.orlitzky.com - numerical-analysis.git/blobdiff - src/Linear/Vector.hs
New function: Linear.Matrix.identity_matrix.
[numerical-analysis.git] / src / Linear / Vector.hs
index aa1568bec6c2ff3b8ed0baa724177349fb04e3bb..e4f622588bbd01ee5657465a78daf2d46aa4c7de 100644 (file)
@@ -18,6 +18,7 @@ import Data.Vector.Fixed (
   toList,
   )
 import qualified Data.Vector.Fixed as V (
+  (!),
   length,
   )
 import Data.Vector.Fixed.Boxed
@@ -27,17 +28,6 @@ type Vec4 = Vec N4
 type Vec5 = Vec N5
 
 
--- | Unsafe indexing.
---
---   Examples:
---
---   >>> import Data.Vector.Fixed (mk2)
---   >>> let v1 = mk2 1 2 :: Vec2 Int
---   >>> v1 ! 1
---   2
---
-(!) :: (Vector v a) => v a -> Int -> a
-(!) v1 idx = (toList v1) !! idx
 
 -- | Safe indexing.
 --
@@ -53,7 +43,7 @@ type Vec5 = Vec N5
 (!?) :: (Vector v a) => v a -> Int -> Maybe a
 (!?) v1 idx
   | idx < 0 || idx >= V.length v1 = Nothing
-  | otherwise                     = Just $ v1 ! idx
+  | otherwise                     = Just $ v1 V.! idx
 
 
 -- | Remove an element of the given vector.
@@ -65,9 +55,14 @@ type Vec5 = Vec N5
 --   >>> delete b 1 :: Vec2 Int
 --   fromList [1,3]
 --
-delete :: (Vector v a, Vector w a, Dim v ~ S (Dim w)) => v a -> Int -> w a
+delete :: (Vector v a,
+           Vector w a,
+           Dim v ~ S (Dim w))
+       => v a
+       -> Int
+       -> w a
 delete v1 idx =
-  fromList (lhalf ++ rhalf')
+  fromList (lhalf ++ rhalf')
   where
     (lhalf, rhalf) = splitAt idx (toList v1)
     rhalf' = tail rhalf