vector-0.12.3.1: Efficient Arrays
Copyright (c) Roman Leshchinskiy 2009-2010
License BSD-style
Maintainer Roman Leshchinskiy <rl@cse.unsw.edu.au>
Stability experimental
Portability non-portable
Safe Haskell None
Language Haskell2010

Data.Vector.Unboxed

Description

Adaptive unboxed vectors. The implementation is based on type families and picks an efficient, specialised representation for every element type. In particular, unboxed vectors of pairs are represented as pairs of unboxed vectors.

Implementing unboxed vectors for new data types can be very easy. Here is how the library does this for Complex by simply wrapping vectors of pairs.

newtype instance MVector s (Complex a) = MV_Complex (MVector s (a,a))
newtype instance Vector    (Complex a) = V_Complex  (Vector    (a,a))

instance (RealFloat a, Unbox a) => MVector MVector (Complex a) where
  {-# INLINE basicLength #-}
  basicLength (MV_Complex v) = basicLength v
  ...

instance (RealFloat a, Unbox a) => Data.Vector.Generic.Vector Vector (Complex a) where
  {-# INLINE basicLength #-}
  basicLength (V_Complex v) = Data.Vector.Generic.basicLength v
  ...

instance (RealFloat a, Unbox a) => Unbox (Complex a)
Synopsis

Unboxed vectors

data family Vector a Source #

Instances

Instances details
NFData1 Vector Source #

Since: 0.12.1.0

Instance details

Defined in Data.Vector.Unboxed.Base

Methods

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

Vector Vector Bool Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Char Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Double Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Float Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Int Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Int8 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Int16 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Int32 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Int64 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Word Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Word8 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Word16 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Word32 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Word64 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector () Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector All Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Vector Vector Any Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => Vector Vector ( Complex a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => Vector Vector ( Min a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => Vector Vector ( Max a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => Vector Vector ( First a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => Vector Vector ( Last a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => Vector Vector ( WrappedMonoid a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => Vector Vector ( Identity a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => Vector Vector ( Dual a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => Vector Vector ( Sum a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => Vector Vector ( Product a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => Vector Vector ( Down a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

( Unbox a, Unbox b) => Vector Vector (a, b) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

( Unbox a, Unbox b) => Vector Vector ( Arg a b) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

( Unbox a, Unbox b, Unbox c) => Vector Vector (a, b, c) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => Vector Vector ( Const a b) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox (f a) => Vector Vector ( Alt f a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

( Unbox a, Unbox b, Unbox c, Unbox d) => Vector Vector (a, b, c, d) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

( Unbox a, Unbox b, Unbox c, Unbox d, Unbox e) => Vector Vector (a, b, c, d, e) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable Vector ( PrimState m) (a, b, c, d, e) -> m ( Vector (a, b, c, d, e)) Source #

basicUnsafeThaw :: PrimMonad m => Vector (a, b, c, d, e) -> m ( Mutable Vector ( PrimState m) (a, b, c, d, e)) Source #

basicLength :: Vector (a, b, c, d, e) -> Int Source #

basicUnsafeSlice :: Int -> Int -> Vector (a, b, c, d, e) -> Vector (a, b, c, d, e) Source #

basicUnsafeIndexM :: Monad m => Vector (a, b, c, d, e) -> Int -> m (a, b, c, d, e) Source #

basicUnsafeCopy :: PrimMonad m => Mutable Vector ( PrimState m) (a, b, c, d, e) -> Vector (a, b, c, d, e) -> m () Source #

elemseq :: Vector (a, b, c, d, e) -> (a, b, c, d, e) -> b0 -> b0 Source #

Unbox (f (g a)) => Vector Vector ( Compose f g a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

( Unbox a, Unbox b, Unbox c, Unbox d, Unbox e, Unbox f) => Vector Vector (a, b, c, d, e, f) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable Vector ( PrimState m) (a, b, c, d, e, f) -> m ( Vector (a, b, c, d, e, f)) Source #

basicUnsafeThaw :: PrimMonad m => Vector (a, b, c, d, e, f) -> m ( Mutable Vector ( PrimState m) (a, b, c, d, e, f)) Source #

basicLength :: Vector (a, b, c, d, e, f) -> Int Source #

basicUnsafeSlice :: Int -> Int -> Vector (a, b, c, d, e, f) -> Vector (a, b, c, d, e, f) Source #

basicUnsafeIndexM :: Monad m => Vector (a, b, c, d, e, f) -> Int -> m (a, b, c, d, e, f) Source #

basicUnsafeCopy :: PrimMonad m => Mutable Vector ( PrimState m) (a, b, c, d, e, f) -> Vector (a, b, c, d, e, f) -> m () Source #

elemseq :: Vector (a, b, c, d, e, f) -> (a, b, c, d, e, f) -> b0 -> b0 Source #

Unbox e => IsList ( Vector e) Source #
Instance details

Defined in Data.Vector.Unboxed

Associated Types

type Item ( Vector e) Source #

( Unbox a, Eq a) => Eq ( Vector a) Source #
Instance details

Defined in Data.Vector.Unboxed

( Data a, Unbox a) => Data ( Vector a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Methods

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

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

toConstr :: Vector a -> Constr Source #

dataTypeOf :: Vector a -> DataType Source #

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

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

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

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

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

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

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

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

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

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

( Unbox a, Ord a) => Ord ( Vector a) Source #
Instance details

Defined in Data.Vector.Unboxed

( Read a, Unbox a) => Read ( Vector a) Source #
Instance details

Defined in Data.Vector.Unboxed

( Show a, Unbox a) => Show ( Vector a) Source #
Instance details

Defined in Data.Vector.Unboxed

Unbox a => Semigroup ( Vector a) Source #
Instance details

Defined in Data.Vector.Unboxed

Unbox a => Monoid ( Vector a) Source #
Instance details

Defined in Data.Vector.Unboxed

NFData ( Vector a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Methods

rnf :: Vector a -> () Source #

type Mutable Vector Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Bool Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Char Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Double Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Float Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Int Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Int8 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Int16 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Int32 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Int64 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Word Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Word8 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Word16 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Word32 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Word64 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector () Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector All Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector Any Source #
Instance details

Defined in Data.Vector.Unboxed.Base

type Item ( Vector e) Source #
Instance details

Defined in Data.Vector.Unboxed

type Item ( Vector e) = e
newtype Vector ( Complex a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( Min a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( Max a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( First a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( Last a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( WrappedMonoid a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( Identity a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( Dual a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( Sum a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( Product a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( Down a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

data Vector (a, b) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

data Vector (a, b) = V_2 ! Int !( Vector a) !( Vector b)
newtype Vector ( Arg a b) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( Arg a b) = V_Arg ( Vector (a, b))
data Vector (a, b, c) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

data Vector (a, b, c) = V_3 ! Int !( Vector a) !( Vector b) !( Vector c)
newtype Vector ( Const a b) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( Alt f a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( Alt f a) = V_Alt ( Vector (f a))
data Vector (a, b, c, d) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

data Vector (a, b, c, d) = V_4 ! Int !( Vector a) !( Vector b) !( Vector c) !( Vector d)
data Vector (a, b, c, d, e) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

data Vector (a, b, c, d, e) = V_5 ! Int !( Vector a) !( Vector b) !( Vector c) !( Vector d) !( Vector e)
newtype Vector ( Compose f g a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector ( Compose f g a) = V_Compose ( Vector (f (g a)))
data Vector (a, b, c, d, e, f) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

data Vector (a, b, c, d, e, f) = V_6 ! Int !( Vector a) !( Vector b) !( Vector c) !( Vector d) !( Vector e) !( Vector f)

data family MVector s a Source #

Instances

Instances details
MVector MVector Bool Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Char Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Double Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Float Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Int Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Int8 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Int16 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Int32 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Int64 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Word Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Word8 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Word16 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Word32 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Word64 Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector () Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector All Source #
Instance details

Defined in Data.Vector.Unboxed.Base

MVector MVector Any Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => MVector MVector ( Complex a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => MVector MVector ( Min a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => MVector MVector ( Max a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => MVector MVector ( First a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => MVector MVector ( Last a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => MVector MVector ( WrappedMonoid a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base

Unbox a => MVector MVector ( Identity a) Source #
Instance details

Defined in Data.Vector.Unboxed.Base