fixed-vector-2.1.0.0: Generic vectors with statically known size.
Safe HaskellNone
LanguageHaskell2010

Data.Vector.Fixed.Boxed

Description

Lazy vector which could hold any value. For strict variant see Data.Vector.Fixed.Strict.

Synopsis

Immutable

data Vec (n :: Nat) a Source #

Vector with fixed length which can hold any value. It's lazy and doesn't evaluate elements.

Instances

Instances details
Arity n => Prod a (Vec n a) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

inspect :: Vec n a -> Fun (Dim (Vec n a)) a r -> r Source #

construct :: Fun (Dim (Vec n a)) a (Vec n a) Source #

Arity n => Vector a (Vec n a) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Arity n => Foldable (Vec n) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

fold :: Monoid m => Vec n m -> m #

foldMap :: Monoid m => (a -> m) -> Vec n a -> m #

foldMap' :: Monoid m => (a -> m) -> Vec n a -> m #

foldr :: (a -> b -> b) -> b -> Vec n a -> b #

foldr' :: (a -> b -> b) -> b -> Vec n a -> b #

foldl :: (b -> a -> b) -> b -> Vec n a -> b #

foldl' :: (b -> a -> b) -> b -> Vec n a -> b #

foldr1 :: (a -> a -> a) -> Vec n a -> a #

foldl1 :: (a -> a -> a) -> Vec n a -> a #

toList :: Vec n a -> [a] #

null :: Vec n a -> Bool #

length :: Vec n a -> Int #

elem :: Eq a => a -> Vec n a -> Bool #

maximum :: Ord a => Vec n a -> a #

minimum :: Ord a => Vec n a -> a #

sum :: Num a => Vec n a -> a #

product :: Num a => Vec n a -> a #

(Arity n, Peano n ~ 'S k) => Foldable1 (Vec n) Source #

since 2.0.1.0

Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

fold1 :: Semigroup m => Vec n m -> m #

foldMap1 :: Semigroup m => (a -> m) -> Vec n a -> m #

foldMap1' :: Semigroup m => (a -> m) -> Vec n a -> m #

toNonEmpty :: Vec n a -> NonEmpty a #

maximum :: Ord a => Vec n a -> a #

minimum :: Ord a => Vec n a -> a #

head :: Vec n a -> a #

last :: Vec n a -> a #

foldrMap1 :: (a -> b) -> (a -> b -> b) -> Vec n a -> b #

foldlMap1' :: (a -> b) -> (b -> a -> b) -> Vec n a -> b #

foldlMap1 :: (a -> b) -> (b -> a -> b) -> Vec n a -> b #

foldrMap1' :: (a -> b) -> (a -> b -> b) -> Vec n a -> b #

Arity n => Traversable (Vec n) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

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

sequenceA :: Applicative f => Vec n (f a) -> f (Vec n a) #

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

sequence :: Monad m => Vec n (m a) -> m (Vec n a) #

Arity n => Applicative (Vec n) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

pure :: a -> Vec n a #

(<*>) :: Vec n (a -> b) -> Vec n a -> Vec n b #

liftA2 :: (a -> b -> c) -> Vec n a -> Vec n b -> Vec n c #

(*>) :: Vec n a -> Vec n b -> Vec n b #

(<*) :: Vec n a -> Vec n b -> Vec n a #

Arity n => Functor (Vec n) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

fmap :: (a -> b) -> Vec n a -> Vec n b #

(<$) :: a -> Vec n b -> Vec n a #

Arity n => Vector (Vec n) a Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

construct :: Fun (Dim (Vec n)) a (Vec n a) Source #

inspect :: Vec n a -> Fun (Dim (Vec n)) a b -> b Source #

basicIndex :: Vec n a -> Int -> a Source #

Arity n => IVector (Vec n) a Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

basicUnsafeFreeze :: Mutable (Vec n) s a -> ST s (Vec n a) Source #

basicThaw :: Vec n a -> ST s (Mutable (Vec n) s a) Source #

unsafeIndex :: Vec n a -> Int -> a Source #

(Typeable n, Arity n, Data a) => Data (Vec n a) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

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

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

toConstr :: Vec n a -> Constr #

dataTypeOf :: Vec n a -> DataType #

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

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

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

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

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

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

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

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

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

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

(Arity n, Storable a) => Storable (Vec n a) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

sizeOf :: Vec n a -> Int #

alignment :: Vec n a -> Int #

peekElemOff :: Ptr (Vec n a) -> Int -> IO (Vec n a) #

pokeElemOff :: Ptr (Vec n a) -> Int -> Vec n a -> IO () #

peekByteOff :: Ptr b -> Int -> IO (Vec n a) #

pokeByteOff :: Ptr b -> Int -> Vec n a -> IO () #

peek :: Ptr (Vec n a) -> IO (Vec n a) #

poke :: Ptr (Vec n a) -> Vec n a -> IO () #

(Arity n, Monoid a) => Monoid (Vec n a) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

mempty :: Vec n a #

mappend :: Vec n a -> Vec n a -> Vec n a #

mconcat :: [Vec n a] -> Vec n a #

(Arity n, Semigroup a) => Semigroup (Vec n a) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

(<>) :: Vec n a -> Vec n a -> Vec n a #

sconcat :: NonEmpty (Vec n a) -> Vec n a #

stimes :: Integral b => b -> Vec n a -> Vec n a #

(Arity n, Show a) => Show (Vec n a) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

showsPrec :: Int -> Vec n a -> ShowS #

show :: Vec n a -> String #

showList :: [Vec n a] -> ShowS #

(Arity n, NFData a) => NFData (Vec n a) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

rnf :: Vec n a -> () #

(Arity n, Eq a) => Eq (Vec n a) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

(==) :: Vec n a -> Vec n a -> Bool #

(/=) :: Vec n a -> Vec n a -> Bool #

(Arity n, Ord a) => Ord (Vec n a) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

compare :: Vec n a -> Vec n a -> Ordering #

(<) :: Vec n a -> Vec n a -> Bool #

(<=) :: Vec n a -> Vec n a -> Bool #

(>) :: Vec n a -> Vec n a -> Bool #

(>=) :: Vec n a -> Vec n a -> Bool #

max :: Vec n a -> Vec n a -> Vec n a #

min :: Vec n a -> Vec n a -> Vec n a #

(Arity n, Prim a) => Prim (Vec n a) Source #

Since: 2.0.1.0

Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

sizeOfType# :: Proxy (Vec n a) -> Int# #

sizeOf# :: Vec n a -> Int# #

alignmentOfType# :: Proxy (Vec n a) -> Int# #

alignment# :: Vec n a -> Int# #

indexByteArray# :: ByteArray# -> Int# -> Vec n a #

readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Vec n a #) #

writeByteArray# :: MutableByteArray# s -> Int# -> Vec n a -> State# s -> State# s #

setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Vec n a -> State# s -> State# s #

indexOffAddr# :: Addr# -> Int# -> Vec n a #

readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Vec n a #) #

writeOffAddr# :: Addr# -> Int# -> Vec n a -> State# s -> State# s #

setOffAddr# :: Addr# -> Int# -> Int# -> Vec n a -> State# s -> State# s #

type Dim (Vec n a :: Type) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

type Dim (Vec n a :: Type) = Peano n
type Mutable (Vec n) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

type Mutable (Vec n) = MVec n
type Dim (Vec n :: Type -> Type) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

type Dim (Vec n :: Type -> Type) = Peano n

type Vec1 = Vec 1 Source #

type Vec2 = Vec 2 Source #

type Vec3 = Vec 3 Source #

type Vec4 = Vec 4 Source #

type Vec5 = Vec 5 Source #

Mutable

data MVec (n :: Nat) s a Source #

Mutable unboxed vector with fixed length

Instances

Instances details
Arity n => MVector (MVec n) a Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

Methods

basicCopy :: MVec n s a -> MVec n s a -> ST s () Source #

basicNew :: ST s (MVec n s a) Source #

basicReplicate :: a -> ST s (MVec n s a) Source #

basicClone :: MVec n s a -> ST s (MVec n s a) Source #

basicUnsafeRead :: MVec n s a -> Int -> ST s a Source #

basicUnsafeWrite :: MVec n s a -> Int -> a -> ST s () Source #

type DimM (MVec n) Source # 
Instance details

Defined in Data.Vector.Fixed.Boxed

type DimM (MVec n) = Peano n