Copyright | (c) Andrey Mulik 2019 |
---|---|
License | BSD-style |
Maintainer | work.a.mulik@gmail.com |
Portability | portable |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
SDP.Vector.Unboxed
Contents
Description
SDP.Vector.Unboxed
provides Vector
- immutable strict unboxed vector.
This module uses the Unbox and Unboxed classes. Looking at similar names and, in general, general purpose, they are fundamentally different:
Despite similar names, classes are very different:
* Unboxed
is a low-level interface that generalizes access to data.
* Unbox
is a service class that combines Vector and MVector.
Synopsis
- module SDP.Indexed
- module SDP.Unboxed
- module SDP.Sort
- module SDP.Scan
- class (Vector Vector a, MVector MVector a) => Unbox a
- data family Vector a
Exports
module SDP.Indexed
module SDP.Unboxed
module SDP.Sort
module SDP.Scan
Vector
class (Vector Vector a, MVector MVector a) => Unbox a #
Instances
Instances
Orphan instances
(MonadIO io, Unboxed e, Unbox e) => Thaw io (Vector e) (MIOUblist io e) Source # | |
(MonadIO io, Unboxed e, Unbox e) => Thaw io (Vector e) (MIOBytes# io e) Source # | |
(MonadIO io, Unboxed e, Unbox e) => Freeze io (MIOUblist io e) (Vector e) Source # | |
(MonadIO io, Unboxed e, Unbox e) => Freeze io (MIOBytes# io e) (Vector e) Source # | |
Unbox e => Nullable (Vector e) Source # | |
Unbox e => Estimate (Vector e) Source # | |
Methods (<.=>) :: Vector e -> Int -> Ordering # (<==>) :: Compare (Vector e) # (.==) :: Vector e -> Int -> Bool # (./=) :: Vector e -> Int -> Bool # (.<=) :: Vector e -> Int -> Bool # (.>=) :: Vector e -> Int -> Bool # (.<) :: Vector e -> Int -> Bool # (.>) :: Vector e -> Int -> Bool # (.<.) :: Vector e -> Vector e -> Bool # (.>.) :: Vector e -> Vector e -> Bool # (.<=.) :: Vector e -> Vector e -> Bool # (.>=.) :: Vector e -> Vector e -> Bool # | |
Unbox e => Scan (Vector e) e Source # | |
Unbox e => Bordered (Vector e) Int Source # | |
Unbox e => Linear (Vector e) e Source # | |
Methods uncons :: Vector e -> (e, Vector e) # uncons' :: Vector e -> Maybe (e, Vector e) # toHead :: e -> Vector e -> Vector e # tail :: Vector e -> Vector e # unsnoc :: Vector e -> (Vector e, e) # unsnoc' :: Vector e -> Maybe (Vector e, e) # toLast :: Vector e -> e -> Vector e # init :: Vector e -> Vector e # (++) :: Vector e -> Vector e -> Vector e # replicate :: Int -> e -> Vector e # fromListN :: Int -> [e] -> Vector e # fromFoldable :: Foldable f => f e -> Vector e # (!^) :: Vector e -> Int -> e # write :: Vector e -> Int -> e -> Vector e # concat :: Foldable f => f (Vector e) -> Vector e # concatMap :: Foldable f => (a -> Vector e) -> f a -> Vector e # intersperse :: e -> Vector e -> Vector e # filter :: (e -> Bool) -> Vector e -> Vector e # except :: (e -> Bool) -> Vector e -> Vector e # partition :: (e -> Bool) -> Vector e -> (Vector e, Vector e) # partitions :: Foldable f => f (e -> Bool) -> Vector e -> [Vector e] # select :: (e -> Maybe a) -> Vector e -> [a] # select' :: (t e ~ Vector e, Linear1 t a) => (e -> Maybe a) -> Vector e -> t a # extract :: (e -> Maybe a) -> Vector e -> ([a], Vector e) # extract' :: (t e ~ Vector e, Linear1 t a) => (e -> Maybe a) -> Vector e -> (t a, Vector e) # selects :: Foldable f => f (e -> Maybe a) -> Vector e -> ([[a]], Vector e) # selects' :: (Foldable f, t e ~ Vector e, Linear1 t a) => f (e -> Maybe a) -> Vector e -> ([t a], Vector e) # isSubseqOf :: Vector e -> Vector e -> Bool # reverse :: Vector e -> Vector e # force :: Vector e -> Vector e # subsequences :: Vector e -> [Vector e] # iterate :: Int -> (e -> e) -> e -> Vector e # nubBy :: Equal e -> Vector e -> Vector e # ofoldr :: (Int -> e -> b -> b) -> b -> Vector e -> b # ofoldl :: (Int -> b -> e -> b) -> b -> Vector e -> b # ofoldr' :: (Int -> e -> b -> b) -> b -> Vector e -> b # ofoldl' :: (Int -> b -> e -> b) -> b -> Vector e -> b # o_foldr :: (e -> b -> b) -> b -> Vector e -> b # o_foldl :: (b -> e -> b) -> b -> Vector e -> b # | |
Unbox e => Split (Vector e) e Source # | |
Methods take :: Int -> Vector e -> Vector e # drop :: Int -> Vector e -> Vector e # keep :: Int -> Vector e -> Vector e # sans :: Int -> Vector e -> Vector e # save :: Int -> Vector e -> Vector e # skip :: Int -> Vector e -> Vector e # split :: Int -> Vector e -> (Vector e, Vector e) # divide :: Int -> Vector e -> (Vector e, Vector e) # splits :: Foldable f => f Int -> Vector e -> [Vector e] # divides :: Foldable f => f Int -> Vector e -> [Vector e] # parts :: Foldable f => f Int -> Vector e -> [Vector e] # chunks :: Int -> Vector e -> [Vector e] # splitBy :: (e -> Bool) -> Vector e -> (Vector e, Vector e) # divideBy :: (e -> Bool) -> Vector e -> (Vector e, Vector e) # splitsBy :: (e -> Bool) -> Vector e -> [Vector e] # splitsOn :: Vector e -> Vector e -> [Vector e] # replaceBy :: Vector e -> Vector e -> Vector e -> Vector e # removeAll :: Vector e -> Vector e -> Vector e # combo :: Equal e -> Vector e -> Int # justifyL :: Int -> e -> Vector e -> Vector e # justifyR :: Int -> e -> Vector e -> Vector e # each :: Int -> Vector e -> Vector e # eachFrom :: Int -> Int -> Vector e -> Vector e # isPrefixOf :: Vector e -> Vector e -> Bool # isSuffixOf :: Vector e -> Vector e -> Bool # isInfixOf :: Vector e -> Vector e -> Bool # prefix :: (e -> Bool) -> Vector e -> Int # suffix :: (e -> Bool) -> Vector e -> Int # infixes :: Vector e -> Vector e -> [Int] # dropSide :: (e -> Bool) -> Vector e -> Vector e # takeWhile :: (e -> Bool) -> Vector e -> Vector e # dropWhile :: (e -> Bool) -> Vector e -> Vector e # takeEnd :: (e -> Bool) -> Vector e -> Vector e # dropEnd :: (e -> Bool) -> Vector e -> Vector e # spanl :: (e -> Bool) -> Vector e -> (Vector e, Vector e) # breakl :: (e -> Bool) -> Vector e -> (Vector e, Vector e) # spanr :: (e -> Bool) -> Vector e -> (Vector e, Vector e) # breakr :: (e -> Bool) -> Vector e -> (Vector e, Vector e) # selectWhile :: (e -> Maybe a) -> Vector e -> [a] # selectEnd :: (e -> Maybe a) -> Vector e -> [a] # extractWhile :: (e -> Maybe a) -> Vector e -> ([a], Vector e) # extractEnd :: (e -> Maybe a) -> Vector e -> (Vector e, [a]) # selectWhile' :: (t e ~ l, Split1 t a) => (e -> Maybe a) -> Vector e -> t a # selectEnd' :: (t e ~ l, Split1 t a) => (e -> Maybe a) -> Vector e -> t a # extractWhile' :: (t e ~ l, Split1 t a) => (e -> Maybe a) -> Vector e -> (t a, Vector e) # extractEnd' :: (t e ~ l, Split1 t a) => (e -> Maybe a) -> Vector e -> (Vector e, t a) # | |
(Unboxed e, Unbox e) => Sort (Vector e) e Source # | |
(Unboxed e, Unbox e) => Indexed (Vector e) Int e Source # | |
Methods assoc :: (Int, Int) -> [(Int, e)] -> Vector e # assoc' :: (Int, Int) -> e -> [(Int, e)] -> Vector e # fromIndexed :: Indexed m j e => m -> Vector e # write' :: Vector e -> Int -> e -> Vector e # accum :: (e -> e' -> e) -> Vector e -> [(Int, e')] -> Vector e # imap :: Map m j e => (Int, Int) -> m -> (Int -> j) -> Vector e # | |
(Unboxed e, Unbox e) => Map (Vector e) Int e Source # | |
Methods assocs :: Vector e -> [(Int, e)] # toMap :: [(Int, e)] -> Vector e # toMap' :: e -> [(Int, e)] -> Vector e # insert' :: Int -> e -> Vector e -> Vector e # delete' :: Int -> Vector e -> Vector e # member' :: Int -> Vector e -> Bool # (//) :: Vector e -> [(Int, e)] -> Vector e # (.!) :: Vector e -> Int -> e # (!?) :: Vector e -> Int -> Maybe e # filter' :: (Int -> e -> Bool) -> Vector e -> Vector e # union' :: (e -> e -> e) -> Vector e -> Vector e -> Vector e # difference' :: (e -> e -> Maybe e) -> Vector e -> Vector e -> Vector e # intersection' :: (e -> e -> e) -> Vector e -> Vector e -> Vector e # update :: Vector e -> (Int -> e -> e) -> Vector e # lookupLT' :: Int -> Vector e -> Maybe (Int, e) # lookupGT' :: Int -> Vector e -> Maybe (Int, e) # lookupLE' :: Int -> Vector e -> Maybe (Int, e) # lookupGE' :: Int -> Vector e -> Maybe (Int, e) # (.$) :: (e -> Bool) -> Vector e -> Maybe Int # (*$) :: (e -> Bool) -> Vector e -> [Int] # kfoldr :: (Int -> e -> b -> b) -> b -> Vector e -> b # kfoldl :: (Int -> b -> e -> b) -> b -> Vector e -> b # | |
(Unboxed e, Unbox e) => Thaw (ST s) (Vector e) (STUblist s e) Source # | |
(Unboxed e, Unbox e) => Thaw (ST s) (Vector e) (STBytes# s e) Source # | |
(Unboxed e, Unbox e) => Freeze (ST s) (STUblist s e) (Vector e) Source # | |
(Unboxed e, Unbox e) => Freeze (ST s) (STBytes# s e) (Vector e) Source # | |