Portability | non-portable |
---|---|
Stability | experimental |
Maintainer | Roman Leshchinskiy <[email protected]> |
Data.Vector.Unboxed
Contents
Description
Unboxed vectors based on Unbox
.
- data Vector a
- length :: Unbox a => Vector a -> Int
- null :: Unbox a => Vector a -> Bool
- empty :: Unbox a => Vector a
- singleton :: Unbox a => a -> Vector a
- cons :: Unbox a => a -> Vector a -> Vector a
- snoc :: Unbox a => Vector a -> a -> Vector a
- replicate :: Unbox a => Int -> a -> Vector a
- (++) :: Unbox a => Vector a -> Vector a -> Vector a
- copy :: Unbox a => Vector a -> Vector a
- (!) :: Unbox a => Vector a -> Int -> a
- head :: Unbox a => Vector a -> a
- last :: Unbox a => Vector a -> a
- slice :: Unbox a => Vector a -> Int -> Int -> Vector a
- init :: Unbox a => Vector a -> Vector a
- tail :: Unbox a => Vector a -> Vector a
- take :: Unbox a => Int -> Vector a -> Vector a
- drop :: Unbox a => Int -> Vector a -> Vector a
- accum :: Unbox a => (a -> b -> a) -> Vector a -> [(Int, b)] -> Vector a
- (//) :: Unbox a => Vector a -> [(Int, a)] -> Vector a
- backpermute :: Unbox a => Vector a -> Vector Int -> Vector a
- reverse :: Unbox a => Vector a -> Vector a
- map :: (Unbox a, Unbox b) => (a -> b) -> Vector a -> Vector b
- concatMap :: (Unbox a, Unbox b) => (a -> Vector b) -> Vector a -> Vector b
- zipWith :: (Unbox a, Unbox b, Unbox c) => (a -> b -> c) -> Vector a -> Vector b -> Vector c
- zipWith3 :: (Unbox a, Unbox b, Unbox c, Unbox d) => (a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector d
- filter :: Unbox a => (a -> Bool) -> Vector a -> Vector a
- takeWhile :: Unbox a => (a -> Bool) -> Vector a -> Vector a
- dropWhile :: Unbox a => (a -> Bool) -> Vector a -> Vector a
- elem :: (Unbox a, Eq a) => a -> Vector a -> Bool
- notElem :: (Unbox a, Eq a) => a -> Vector a -> Bool
- find :: Unbox a => (a -> Bool) -> Vector a -> Maybe a
- findIndex :: Unbox a => (a -> Bool) -> Vector a -> Maybe Int
- foldl :: Unbox b => (a -> b -> a) -> a -> Vector b -> a
- foldl1 :: Unbox a => (a -> a -> a) -> Vector a -> a
- foldl' :: Unbox b => (a -> b -> a) -> a -> Vector b -> a
- foldl1' :: Unbox a => (a -> a -> a) -> Vector a -> a
- foldr :: Unbox a => (a -> b -> b) -> b -> Vector a -> b
- foldr1 :: Unbox a => (a -> a -> a) -> Vector a -> a
- sum :: (Unbox a, Num a) => Vector a -> a
- product :: (Unbox a, Num a) => Vector a -> a
- maximum :: (Unbox a, Ord a) => Vector a -> a
- minimum :: (Unbox a, Ord a) => Vector a -> a
- unfoldr :: Unbox a => (b -> Maybe (a, b)) -> b -> Vector a
- prescanl :: (Unbox a, Unbox b) => (a -> b -> a) -> a -> Vector b -> Vector a
- prescanl' :: (Unbox a, Unbox b) => (a -> b -> a) -> a -> Vector b -> Vector a
- enumFromTo :: (Unbox a, Enum a) => a -> a -> Vector a
- enumFromThenTo :: (Unbox a, Enum a) => a -> a -> a -> Vector a
- toList :: Unbox a => Vector a -> [a]
- fromList :: Unbox a => [a] -> Vector a
Documentation
Unboxed vectors
Length information
Construction
replicate :: Unbox a => Int -> a -> Vector aSource
Vector of the given length with the given value in each position
copy :: Unbox a => Vector a -> Vector aSource
Create a copy of a vector. Useful when dealing with slices.
Accessing individual elements
Subvectors
Yield a part of the vector without copying it. Safer version of
unsafeSlice
.
drop :: Unbox a => Int -> Vector a -> Vector aSource
Yield all but the first n
elements without copying.
Permutations
Mapping
Zipping and unzipping
zipWith :: (Unbox a, Unbox b, Unbox c) => (a -> b -> c) -> Vector a -> Vector b -> Vector cSource
Zip two vectors with the given function.
zipWith3 :: (Unbox a, Unbox b, Unbox c, Unbox d) => (a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector dSource
Zip three vectors with the given function.
Filtering
filter :: Unbox a => (a -> Bool) -> Vector a -> Vector aSource
Drop elements which do not satisfy the predicate
takeWhile :: Unbox a => (a -> Bool) -> Vector a -> Vector aSource
Yield the longest prefix of elements satisfying the predicate.
dropWhile :: Unbox a => (a -> Bool) -> Vector a -> Vector aSource
Drop the longest prefix of elements that satisfy the predicate.
Searching
Folding
foldl1' :: Unbox a => (a -> a -> a) -> Vector a -> aSource
Left fold on non-empty vectors with strict accumulator
Specialised folds
Unfolding
Scans
prescanl' :: (Unbox a, Unbox b) => (a -> b -> a) -> a -> Vector b -> Vector aSource
Prefix scan with strict accumulator
Enumeration
enumFromTo :: (Unbox a, Enum a) => a -> a -> Vector aSource
enumFromThenTo :: (Unbox a, Enum a) => a -> a -> a -> Vector aSource