vector-0.4: Efficient ArraysSource codeContentsIndex
Data.Vector.Storable
Portabilitynon-portable
Stabilityexperimental
MaintainerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Contents
Length information
Construction
Accessing individual elements
Subvectors
Permutations
Mapping
Zipping and unzipping
Filtering
Searching
Folding
Specialised folds
Unfolding
Scans
Enumeration
Conversion to/from lists
Description
Storable-based vectors.
Synopsis
data Vector a
data MVector a = MVector !Int !Int !(ForeignPtr a)
Storable (sizeOf, alignment, peekElemOff, pokeElemOff, peekByteOff, pokeByteOff, peek, poke)
length :: Storable a => Vector a -> Int
null :: Storable a => Vector a -> Bool
empty :: Storable a => Vector a
singleton :: Storable a => a -> Vector a
cons :: Storable a => a -> Vector a -> Vector a
snoc :: Storable a => Vector a -> a -> Vector a
replicate :: Storable a => Int -> a -> Vector a
(++) :: Storable a => Vector a -> Vector a -> Vector a
copy :: Storable a => Vector a -> Vector a
(!) :: Storable a => Vector a -> Int -> a
head :: Storable a => Vector a -> a
last :: Storable a => Vector a -> a
slice :: Storable a => Vector a -> Int -> Int -> Vector a
init :: Storable a => Vector a -> Vector a
tail :: Storable a => Vector a -> Vector a
take :: Storable a => Int -> Vector a -> Vector a
drop :: Storable a => Int -> Vector a -> Vector a
accum :: Storable a => (a -> b -> a) -> Vector a -> [(Int, b)] -> Vector a
(//) :: Storable a => Vector a -> [(Int, a)] -> Vector a
backpermute :: Storable a => Vector a -> Vector Int -> Vector a
reverse :: Storable a => Vector a -> Vector a
map :: (Storable a, Storable b) => (a -> b) -> Vector a -> Vector b
concatMap :: (Storable a, Storable b) => (a -> Vector b) -> Vector a -> Vector b
zipWith :: (Storable a, Storable b, Storable c) => (a -> b -> c) -> Vector a -> Vector b -> Vector c
zipWith3 :: (Storable a, Storable b, Storable c, Storable d) => (a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector d
filter :: Storable a => (a -> Bool) -> Vector a -> Vector a
takeWhile :: Storable a => (a -> Bool) -> Vector a -> Vector a
dropWhile :: Storable a => (a -> Bool) -> Vector a -> Vector a
elem :: (Storable a, Eq a) => a -> Vector a -> Bool
notElem :: (Storable a, Eq a) => a -> Vector a -> Bool
find :: Storable a => (a -> Bool) -> Vector a -> Maybe a
findIndex :: Storable a => (a -> Bool) -> Vector a -> Maybe Int
foldl :: Storable b => (a -> b -> a) -> a -> Vector b -> a
foldl1 :: Storable a => (a -> a -> a) -> Vector a -> a
foldl' :: Storable b => (a -> b -> a) -> a -> Vector b -> a
foldl1' :: Storable a => (a -> a -> a) -> Vector a -> a
foldr :: Storable a => (a -> b -> b) -> b -> Vector a -> b
foldr1 :: Storable a => (a -> a -> a) -> Vector a -> a
and :: Vector Bool -> Bool
or :: Vector Bool -> Bool
sum :: (Storable a, Num a) => Vector a -> a
product :: (Storable a, Num a) => Vector a -> a
maximum :: (Storable a, Ord a) => Vector a -> a
minimum :: (Storable a, Ord a) => Vector a -> a
unfoldr :: Storable a => (b -> Maybe (a, b)) -> b -> Vector a
prescanl :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector a
prescanl' :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector a
postscanl :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector a
postscanl' :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector a
scanl :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector a
scanl' :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector a
scanl1 :: Storable a => (a -> a -> a) -> Vector a -> Vector a
scanl1' :: Storable a => (a -> a -> a) -> Vector a -> Vector a
enumFromTo :: (Storable a, Enum a) => a -> a -> Vector a
enumFromThenTo :: (Storable a, Enum a) => a -> a -> a -> Vector a
toList :: Storable a => Vector a -> [a]
fromList :: Storable a => [a] -> Vector a
Documentation
data Vector a Source
Storable-based vectors
show/hide Instances
Storable a => Vector Vector a
(Storable a, Eq a) => Eq (Vector a)
(Storable a, Ord a) => Ord (Vector a)
(Show a, Storable a) => Show (Vector a)
data MVector a Source
Mutable Storable-based vectors in the IO monad.
Constructors
MVector !Int !Int !(ForeignPtr a)
show/hide Instances
Storable (sizeOf, alignment, peekElemOff, pokeElemOff, peekByteOff, pokeByteOff, peek, poke)
Length information
length :: Storable a => Vector a -> IntSource
null :: Storable a => Vector a -> BoolSource
Construction
empty :: Storable a => Vector aSource
Empty vector
singleton :: Storable a => a -> Vector aSource
Vector with exaclty one element
cons :: Storable a => a -> Vector a -> Vector aSource
Prepend an element
snoc :: Storable a => Vector a -> a -> Vector aSource
Append an element
replicate :: Storable a => Int -> a -> Vector aSource
Vector of the given length with the given value in each position
(++) :: Storable a => Vector a -> Vector a -> Vector aSource
Concatenate two vectors
copy :: Storable a => Vector a -> Vector aSource
Create a copy of a vector. Useful when dealing with slices.
Accessing individual elements
(!) :: Storable a => Vector a -> Int -> aSource
Indexing
head :: Storable a => Vector a -> aSource
First element
last :: Storable a => Vector a -> aSource
Last element
Subvectors
sliceSource
:: Storable a
=> Vector a
-> Intstarting index
-> Intlength
-> Vector a
Yield a part of the vector without copying it. Safer version of unsafeSlice.
init :: Storable a => Vector a -> Vector aSource
Yield all but the last element without copying.
tail :: Storable a => Vector a -> Vector aSource
All but the first element (without copying).
take :: Storable a => Int -> Vector a -> Vector aSource
Yield the first n elements without copying.
drop :: Storable a => Int -> Vector a -> Vector aSource
Yield all but the first n elements without copying.
Permutations
accum :: Storable a => (a -> b -> a) -> Vector a -> [(Int, b)] -> Vector aSource
(//) :: Storable a => Vector a -> [(Int, a)] -> Vector aSource
backpermute :: Storable a => Vector a -> Vector Int -> Vector aSource
reverse :: Storable a => Vector a -> Vector aSource
Mapping
map :: (Storable a, Storable b) => (a -> b) -> Vector a -> Vector bSource
Map a function over a vector
concatMap :: (Storable a, Storable b) => (a -> Vector b) -> Vector a -> Vector bSource
Zipping and unzipping
zipWith :: (Storable a, Storable b, Storable c) => (a -> b -> c) -> Vector a -> Vector b -> Vector cSource
Zip two vectors with the given function.
zipWith3 :: (Storable a, Storable b, Storable c, Storable d) => (a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector dSource
Zip three vectors with the given function.
Filtering
filter :: Storable a => (a -> Bool) -> Vector a -> Vector aSource
Drop elements which do not satisfy the predicate
takeWhile :: Storable a => (a -> Bool) -> Vector a -> Vector aSource
Yield the longest prefix of elements satisfying the predicate.
dropWhile :: Storable a => (a -> Bool) -> Vector a -> Vector aSource
Drop the longest prefix of elements that satisfy the predicate.
Searching
elem :: (Storable a, Eq a) => a -> Vector a -> BoolSource
Check whether the vector contains an element
notElem :: (Storable a, Eq a) => a -> Vector a -> BoolSource
Inverse of elem
find :: Storable a => (a -> Bool) -> Vector a -> Maybe aSource
Yield Just the first element matching the predicate or Nothing if no such element exists.
findIndex :: Storable a => (a -> Bool) -> Vector a -> Maybe IntSource
Yield Just the index of the first element matching the predicate or Nothing if no such element exists.
Folding
foldl :: Storable b => (a -> b -> a) -> a -> Vector b -> aSource
Left fold
foldl1 :: Storable a => (a -> a -> a) -> Vector a -> aSource
Lefgt fold on non-empty vectors
foldl' :: Storable b => (a -> b -> a) -> a -> Vector b -> aSource
Left fold with strict accumulator
foldl1' :: Storable a => (a -> a -> a) -> Vector a -> aSource
Left fold on non-empty vectors with strict accumulator
foldr :: Storable a => (a -> b -> b) -> b -> Vector a -> bSource
Right fold
foldr1 :: Storable a => (a -> a -> a) -> Vector a -> aSource
Right fold on non-empty vectors
Specialised folds
and :: Vector Bool -> BoolSource
or :: Vector Bool -> BoolSource
sum :: (Storable a, Num a) => Vector a -> aSource
product :: (Storable a, Num a) => Vector a -> aSource
maximum :: (Storable a, Ord a) => Vector a -> aSource
minimum :: (Storable a, Ord a) => Vector a -> aSource
Unfolding
unfoldr :: Storable a => (b -> Maybe (a, b)) -> b -> Vector aSource
Scans
prescanl :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector aSource
Prefix scan
prescanl' :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector aSource
Prefix scan with strict accumulator
postscanl :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector aSource
Suffix scan
postscanl' :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector aSource
Suffix scan with strict accumulator
scanl :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector aSource
Haskell-style scan
scanl' :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector aSource
Haskell-style scan with strict accumulator
scanl1 :: Storable a => (a -> a -> a) -> Vector a -> Vector aSource
Scan over a non-empty Vector
scanl1' :: Storable a => (a -> a -> a) -> Vector a -> Vector aSource
Scan over a non-empty Vector with a strict accumulator
Enumeration
enumFromTo :: (Storable a, Enum a) => a -> a -> Vector aSource
enumFromThenTo :: (Storable a, Enum a) => a -> a -> a -> Vector aSource
Conversion to/from lists
toList :: Storable a => Vector a -> [a]Source
Convert a vector to a list
fromList :: Storable a => [a] -> Vector aSource
Convert a list to a vector
Produced by Haddock version 2.4.2