rio-0.1.22.0: A standard library for Haskell
Safe HaskellNone
LanguageHaskell2010

RIO.Vector.Boxed

Description

Boxed Vector. Import as:

import qualified RIO.Vector.Boxed as VB

This module does not export any partial or unsafe functions. For those, see RIO.Vector.Boxed.Partial and RIO.Vector.Boxed.Unsafe

Synopsis

Boxed vectors

data Vector a #

Instances

Instances details
MonadFail Vector 
Instance details

Defined in Data.Vector

Methods

fail :: String -> Vector a #

MonadFix Vector 
Instance details

Defined in Data.Vector

Methods

mfix :: (a -> Vector a) -> Vector a

MonadZip Vector 
Instance details

Defined in Data.Vector

Methods

mzip :: Vector a -> Vector b -> Vector (a, b)

mzipWith :: (a -> b -> c) -> Vector a -> Vector b -> Vector c

munzip :: Vector (a, b) -> (Vector a, Vector b)

Foldable Vector 
Instance details

Defined in Data.Vector

Methods

fold :: Monoid m => Vector m -> m #

foldMap :: Monoid m => (a -> m) -> Vector a -> m #

foldMap' :: Monoid m => (a -> m) -> Vector a -> m

foldr :: (a -> b -> b) -> b -> Vector a -> b #

foldr' :: (a -> b -> b) -> b -> Vector a -> b

foldl :: (b -> a -> b) -> b -> Vector a -> b #

foldl' :: (b -> a -> b) -> b -> Vector a -> b #

foldr1 :: (a -> a -> a) -> Vector a -> a #

foldl1 :: (a -> a -> a) -> Vector a -> a #

toList :: Vector a -> [a] #

null :: Vector a -> Bool #

length :: Vector a -> Int #

elem :: Eq a => a -> Vector a -> Bool #

maximum :: Ord a => Vector a -> a #

minimum :: Ord a => Vector a -> a #

sum :: Num a => Vector a -> a #

product :: Num a => Vector a -> a #

Eq1 Vector 
Instance details

Defined in Data.Vector

Methods

liftEq :: (a -> b -> Bool) -> Vector a -> Vector b -> Bool

Ord1 Vector 
Instance details

Defined in Data.Vector

Methods

liftCompare :: (a -> b -> Ordering) -> Vector a -> Vector b -> Ordering

Read1 Vector 
Instance details

Defined in Data.Vector

Methods

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Vector a)

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Vector a]

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Vector a)

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Vector a]

Show1 Vector 
Instance details

Defined in Data.Vector

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Vector a -> ShowS

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Vector a] -> ShowS

Traversable Vector 
Instance details

Defined in Data.Vector

Methods

traverse :: Applicative f => (a -> f b) -> Vector a -> f (Vector b) #

sequenceA :: Applicative f => Vector (f a) -> f (Vector a) #

mapM :: Monad m => (a -> m b) -> Vector a -> m (Vector b) #

sequence :: Monad m => Vector (m a) -> m (Vector a) #

Alternative Vector 
Instance details

Defined in Data.Vector

Methods

empty :: Vector a

(<|>) :: Vector a -> Vector a -> Vector a #

some :: Vector a -> Vector [a] #

many :: Vector a -> Vector [a] #

Applicative Vector 
Instance details

Defined in Data.Vector

Methods

pure :: a -> Vector a #

(<*>) :: Vector (a -> b) -> Vector a -> Vector b #

liftA2 :: (a -> b -> c) -> Vector a -> Vector b -> Vector c #

(*>) :: Vector a -> Vector b -> Vector b #

(<*) :: Vector a -> Vector b -> Vector a #

Functor Vector 
Instance details

Defined in Data.Vector

Methods

fmap :: (a -> b) -> Vector a -> Vector b #

(<$) :: a -> Vector b -> Vector a #

Monad Vector 
Instance details

Defined in Data.Vector

Methods

(>>=) :: Vector a -> (a -> Vector b) -> Vector b #

(>>) :: Vector a -> Vector b -> Vector b #

return :: a -> Vector a #

MonadPlus Vector 
Instance details

Defined in Data.Vector

Methods

mzero :: Vector a #

mplus :: Vector a -> Vector a -> Vector a #

NFData1 Vector 
Instance details

Defined in Data.Vector

Methods

liftRnf :: (a -> ()) -> Vector a -> ()

Vector Vector a 
Instance details

Defined in Data.Vector

Methods

basicUnsafeFreeze :: Mutable Vector s a -> ST s (Vector a) #

basicUnsafeThaw :: Vector a -> ST s (Mutable Vector s a) #

basicLength :: Vector a -> Int #

basicUnsafeSlice :: Int -> Int -> Vector a -> Vector a #

basicUnsafeIndexM :: Vector a -> Int -> Box a #

basicUnsafeCopy :: Mutable Vector s a -> Vector a -> ST s () #

elemseq :: Vector a -> a -> b -> b #

Data a => Data (Vector a) 
Instance details

Defined in Data.Vector

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Vector a -> c (Vector a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Vector a) #

toConstr :: Vector a -> Constr #

dataTypeOf :: Vector a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Vector a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Vector a)) #

gmapT :: (forall b. Data b => b -> b) -> Vector a -> Vector a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Vector a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Vector a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Vector a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Vector a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Vector a -> m (Vector a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Vector a -> m (Vector a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Vector a -> m (Vector a) #

Monoid (Vector a) 
Instance details

Defined in Data.Vector

Methods

mempty :: Vector a #

mappend :: Vector a -> Vector a -> Vector a #

mconcat :: [Vector a] -> Vector a #

Semigroup (Vector a) 
Instance details

Defined in Data.Vector

Methods

(<>) :: Vector a -> Vector a -> Vector a #

sconcat :: NonEmpty (Vector a) -> Vector a

stimes :: Integral b => b -> Vector a -> Vector a

IsList (Vector a) 
Instance details

Defined in Data.Vector

Associated Types

type Item (Vector a) 
Instance details

Defined in Data.Vector

type Item (Vector a) = a

Methods

fromList :: [Item (Vector a)] -> Vector a

fromListN :: Int -> [Item (Vector a)] -> Vector a

toList :: Vector a -> [Item (Vector a)]

Read a => Read (Vector a) 
Instance details

Defined in Data.Vector

Methods

readsPrec :: Int -> ReadS (Vector a)

readList :: ReadS [Vector a]

readPrec :: ReadPrec (Vector a)

readListPrec :: ReadPrec [Vector a]

Show a => Show (Vector a) 
Instance details

Defined in Data.Vector

Methods

showsPrec :: Int -> Vector a -> ShowS

show :: Vector a -> String #

showList :: [Vector a] -> ShowS

NFData a => NFData (Vector a) 
Instance details

Defined in Data.Vector

Methods

rnf :: Vector a -> () #

Eq a => Eq (Vector a) 
Instance details

Defined in Data.Vector

Methods

(==) :: Vector a -> Vector a -> Bool #

(/=) :: Vector a -> Vector a -> Bool #

Ord a => Ord (Vector a) 
Instance details

Defined in Data.Vector

Methods

compare :: Vector a -> Vector a -> Ordering #

(<) :: Vector a -> Vector a -> Bool #

(<=) :: Vector a -> Vector a -> Bool #

(>) :: Vector a -> Vector a -> Bool #

(>=) :: Vector a -> Vector a -> Bool #

max :: Vector a -> Vector a -> Vector a #

min :: Vector a -> Vector a -> Vector a #

type Mutable Vector 
Instance details

Defined in Data.Vector

type Mutable Vector = MVector
type Item (Vector a) 
Instance details

Defined in Data.Vector

type Item (Vector a) = a

data MVector s a #

Instances

Instances details
MVector MVector a 
Instance details

Defined in Data.Vector.Mutable

Methods

basicLength :: MVector s a -> Int

basicUnsafeSlice :: Int -> Int -> MVector s a -> MVector s a

basicOverlaps :: MVector s a -> MVector s a -> Bool

basicUnsafeNew :: Int -> ST s (MVector s a)

basicInitialize :: MVector s a -> ST s ()

basicUnsafeReplicate :: Int -> a -> ST s (MVector s a)

basicUnsafeRead :: MVector s a -> Int -> ST s a

basicUnsafeWrite :: MVector s a -> Int -> a -> ST s ()

basicClear :: MVector s a -> ST s ()

basicSet :: MVector s a -> a -> ST s ()

basicUnsafeCopy :: MVector s a -> MVector s a -> ST s ()

basicUnsafeMove :: MVector s a -> MVector s a -> ST s ()

basicUnsafeGrow :: MVector s a -> Int -> ST s (MVector s a)

Accessors

Length information

length :: Vector a -> Int #

null :: Vector a -> Bool #

Indexing

(!?) :: Vector a -> Int -> Maybe a #

Extracting subvectors

slice :: Int -> Int -> Vector a -> Vector a #

take :: Int -> Vector a -> Vector a #

drop :: Int -> Vector a -> Vector a #

splitAt :: Int -> Vector a -> (Vector a, Vector a) #

Construction

Initialisation

singleton :: a -> Vector a #

replicate :: Int -> a -> Vector a #

generate :: Int -> (Int -> a) -> Vector a #

iterateN :: Int -> (a -> a) -> a -> Vector a #

Monadic initialisation

replicateM :: Monad m => Int -> m a -> m (Vector a) #

generateM :: Monad m => Int -> (Int -> m a) -> m (Vector a) #

iterateNM :: Monad m => Int -> (a -> m a) -> a -> m (Vector a) #

create :: (forall s. ST s (MVector s a)) -> Vector a #

createT :: Traversable f => (forall s. ST s (f (MVector s a))) -> f (Vector a) #

Unfolding

unfoldr :: (b -> Maybe (a, b)) -> b -> Vector a #

unfoldrN :: Int -> (b -> Maybe (a, b)) -> b -> Vector a #

unfoldrM :: Monad m => (b -> m (Maybe (a, b))) -> b -> m (Vector a) #

unfoldrNM :: Monad m => Int -> (b -> m (Maybe (a, b))) -> b -> m (Vector a) #

constructN :: Int -> (Vector a -> a) -> Vector a #

constructrN :: Int -> (Vector a -> a) -> Vector a #

Enumeration

enumFromN :: Num a => a -> Int -> Vector a #

enumFromStepN :: Num a => a -> a -> Int -> Vector a #

enumFromTo :: Enum a => a -> a -> Vector a #

enumFromThenTo :: Enum a => a -> a -> a -> Vector a #

Concatenation

cons :: a -> Vector a -> Vector a #

snoc :: Vector a -> a -> Vector a #

(++) :: Vector a -> Vector a -> Vector a #

concat :: [Vector a] -> Vector a #

Restricting memory usage

force :: Vector a -> Vector a #

Modifying vectors

Permutations

Safe destructive update

modify :: (forall s. MVector s a -> ST s ()) -> Vector a -> Vector a #

Elementwise operations

Indexing

indexed :: Vector a -> Vector (Int, a) #

Mapping

map :: (a -> b) -> Vector a -> Vector b #

imap :: (Int -> a -> b) -> Vector a -> Vector b #

concatMap :: (a -> Vector b) -> Vector a -> Vector b #

Monadic mapping

mapM :: Monad m => (a -> m b) -> Vector a -> m (Vector b) #

imapM :: Monad m => (Int -> a -> m b) -> Vector a -> m (Vector b) #

mapM_ :: Monad m => (a -> m b) -> Vector a -> m () #

imapM_ :: Monad m => (Int -> a -> m b) -> Vector a -> m () #

forM :: Monad m => Vector a -> (a -> m b) -> m (Vector b) #

forM_ :: Monad m => Vector a -> (a -> m b) -> m () #

Zipping

zipWith :: (a -> b -> c) -> Vector a -> Vector b -> Vector c #

zipWith3 :: (a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector d #

zipWith4 :: (a -> b -> c -> d -> e) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e #

zipWith5 :: (a -> b -> c -> d -> e -> f) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f #

zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f -> Vector g #

izipWith :: (Int -> a -> b -> c) -> Vector a -> Vector b -> Vector c #

izipWith3 :: (Int -> a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector d #

izipWith4 :: (Int -> a -> b -> c -> d -> e) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e #

izipWith5 :: (Int -> a -> b -> c -> d -> e -> f) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f #

izipWith6 :: (Int -> a -> b -> c -> d -> e -> f -> g) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f -> Vector g #

zip :: Vector a -> Vector b -> Vector (a, b) #

zip3 :: Vector a -> Vector b -> Vector c -> Vector (a, b, c) #

zip4 :: Vector a -> Vector b -> Vector c -> Vector d -> Vector (a, b, c, d) #

zip5 :: Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector (a, b, c, d, e) #

zip6 :: Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f -> Vector (a, b, c, d, e, f) #

Monadic zipping

zipWithM :: Monad m => (a -> b -> m c) -> Vector a -> Vector b -> m (Vector c) #

izipWithM :: Monad m => (Int -> a -> b -> m c) -> Vector a -> Vector b -> m (Vector c) #

zipWithM_ :: Monad m => (a -> b -> m c) -> Vector a -> Vector b -> m () #

izipWithM_ :: Monad m => (Int -> a -> b -> m c) -> Vector a -> Vector b -> m () #

Unzipping

unzip :: Vector (a, b) -> (Vector a, Vector b) #

unzip3 :: Vector (a, b, c) -> (Vector a, Vector b, Vector c) #

unzip4 :: Vector (a, b, c, d) -> (Vector a, Vector b, Vector c, Vector d) #

unzip5 :: Vector (a, b, c, d, e) -> (Vector a, Vector b, Vector c, Vector d, Vector e) #

unzip6 :: Vector (a, b, c, d, e, f) -> (Vector a, Vector b, Vector c, Vector d, Vector e, Vector f) #

Working with predicates

Filtering

filter :: (a -> Bool) -> Vector a -> Vector a #

ifilter :: (Int -> a -> Bool) -> Vector a -> Vector a #

uniq :: Eq a => Vector a -> Vector a #

mapMaybe :: (a -> Maybe b) -> Vector a -> Vector b #

imapMaybe :: (Int -> a -> Maybe b) -> Vector a -> Vector b #

filterM :: Monad m => (a -> m Bool) -> Vector a -> m (Vector a) #

takeWhile :: (a -> Bool) -> Vector a -> Vector a #

dropWhile :: (a -> Bool) -> Vector a -> Vector a #

Partitioning

partition :: (a -> Bool) -> Vector a -> (Vector a, Vector a) #

unstablePartition :: (a -> Bool) -> Vector a -> (Vector a, Vector a) #

span :: (a -> Bool) -> Vector a -> (Vector a, Vector a) #

break :: (a -> Bool) -> Vector a -> (Vector a, Vector a) #

Searching

elem :: Eq a => a -> Vector a -> Bool #

notElem :: Eq a => a -> Vector a -> Bool #

find :: (a -> Bool) -> Vector a -> Maybe a #

findIndex :: (a -> Bool) -> Vector a -> Maybe Int #

findIndices :: (a -> Bool) -> Vector a -> Vector Int #

elemIndex :: Eq a => a -> Vector a -> Maybe Int #

elemIndices :: Eq a => a -> Vector a -> Vector Int #

Folding

foldl :: (a -> b -> a) -> a -> Vector b -> a #

foldl' :: (a -> b -> a) -> a -> Vector b -> a #

foldr :: (a -> b -> b) -> b -> Vector a -> b #

foldr' :: (a -> b -> b) -> b -> Vector a -> b #

ifoldl :: (a -> Int -> b -> a) -> a -> Vector b -> a #

ifoldl' :: (a -> Int -> b -> a) -> a -> Vector b -> a #

ifoldr :: (Int -> a -> b -> b) -> b -> Vector a -> b #

ifoldr' :: (Int -> a -> b -> b) -> b -> Vector a -> b #

Specialised folds

all :: (a -> Bool) -> Vector a -> Bool #

any :: (a -> Bool) -> Vector a -> Bool #

sum :: Num a => Vector a -> a #

product :: Num a => Vector a -> a #

Monadic folds

foldM :: Monad m => (a -> b -> m a) -> a -> Vector b -> m a #

ifoldM :: Monad m => (a -> Int -> b -> m a) -> a -> Vector b -> m a #

foldM' :: Monad m => (a -> b -> m a) -> a -> Vector b -> m a #

ifoldM' :: Monad m => (a -> Int -> b -> m a) -> a -> Vector b -> m a #

foldM_ :: Monad m => (a -> b -> m a) -> a -> Vector b -> m () #

ifoldM_ :: Monad m => (a -> Int -> b -> m a) -> a -> Vector b -> m () #

foldM'_ :: Monad m => (a -> b -> m a) -> a -> Vector b -> m () #

ifoldM'_ :: Monad m => (a -> Int -> b -> m a) -> a -> Vector b -> m () #

Monadic sequencing

sequence :: Monad m => Vector (m a) -> m (Vector a) #

sequence_ :: Monad m => Vector (m a) -> m () #

Prefix sums (scans)

prescanl :: (a -> b -> a) -> a -> Vector b -> Vector a #

prescanl' :: (a -> b -> a) -> a -> Vector b -> Vector a #

postscanl :: (a -> b -> a) -> a -> Vector b -> Vector a #

postscanl' :: (a -> b -> a) -> a -> Vector b -> Vector a #

scanl :: (a -> b -> a) -> a -> Vector b -> Vector a #

scanl' :: (a -> b -> a) -> a -> Vector b -> Vector a #

iscanl :: (Int -> a -> b -> a) -> a -> Vector b -> Vector a #

iscanl' :: (Int -> a -> b -> a) -> a -> Vector b -> Vector a #

prescanr :: (a -> b -> b) -> b -> Vector a -> Vector b #

prescanr' :: (a -> b -> b) -> b -> Vector a -> Vector b #

postscanr :: (a -> b -> b) -> b -> Vector a -> Vector b #

postscanr' :: (a -> b -> b) -> b -> Vector a -> Vector b #

scanr :: (a -> b -> b) -> b -> Vector a -> Vector b #

scanr' :: (a -> b -> b) -> b -> Vector a -> Vector b #

iscanr :: (Int -> a -> b -> b) -> b -> Vector a -> Vector b #

iscanr' :: (Int -> a -> b -> b) -> b -> Vector a -> Vector b #

Conversions

Lists

toList :: Vector a -> [a] #

fromList :: [a] -> Vector a #

fromListN :: Int -> [a] -> Vector a #

Different vector types

convert :: (Vector v a, Vector w a) => v a -> w a #

Mutable vectors

freeze :: PrimMonad m => MVector (PrimState m) a -> m (Vector a) #

thaw :: PrimMonad m => Vector a -> m (MVector (PrimState m) a) #

copy :: PrimMonad m => MVector (PrimState m) a -> Vector a -> m () #