X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FLinear%2FVector.hs;h=e4f622588bbd01ee5657465a78daf2d46aa4c7de;hb=613b25028368b3651bea0c801e05d9962ad9b604;hp=aa1568bec6c2ff3b8ed0baa724177349fb04e3bb;hpb=1f64a1a33b2636ef2e863a0b577c8d8d50233580;p=numerical-analysis.git diff --git a/src/Linear/Vector.hs b/src/Linear/Vector.hs index aa1568b..e4f6225 100644 --- a/src/Linear/Vector.hs +++ b/src/Linear/Vector.hs @@ -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