vector-sized-1.6.1: Size tagged vectors
Safe HaskellNone
LanguageHaskell2010

Data.Vector.Generic.Sized.Internal

Synopsis

Documentation

newtype Vector (v :: Type -> Type) (n :: Nat) a Source #

A wrapper to tag vectors with a type level length.

Be careful when using the constructor here to not construct sized vectors which have a different length than that specified in the type parameter!

Constructors

Vector (v a) 

Instances

Instances details
(Unbox a, KnownNat n) => Vector Vector (Vector Vector n a) 
Instance details

Defined in Data.Vector.Unboxed.Mutable.Sized

Methods

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

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

basicLength :: Vector (Vector Vector n a) -> Int

basicUnsafeSlice :: Int -> Int -> Vector (Vector Vector n a) -> Vector (Vector Vector n a)

basicUnsafeIndexM :: Vector (Vector Vector n a) -> Int -> Box (Vector Vector n a)

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

elemseq :: Vector (Vector Vector n a) -> Vector Vector n a -> b -> b

(Unbox a, KnownNat n) => MVector MVector (Vector Vector n a) 
Instance details

Defined in Data.Vector.Unboxed.Mutable.Sized

Methods

basicLength :: MVector s (Vector Vector n a) -> Int

basicUnsafeSlice :: Int -> Int -> MVector s (Vector Vector n a) -> MVector s (Vector Vector n a)

basicOverlaps :: MVector s (Vector Vector n a) -> MVector s (Vector Vector n a) -> Bool

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

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

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

basicUnsafeRead :: MVector s (Vector Vector n a) -> Int -> ST s (Vector Vector n a)

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

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

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

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

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

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

FoldableWithIndex (Finite n) (Vector Vector n) Source #

Since: 1.6.0

Instance details

Defined in Data.Vector.Generic.Sized

Methods

ifoldMap :: Monoid m => (Finite n -> a -> m) -> Vector Vector n a -> m #

ifoldMap' :: Monoid m => (Finite n -> a -> m) -> Vector Vector n a -> m #

ifoldr :: (Finite n -> a -> b -> b) -> b -> Vector Vector n a -> b #

ifoldl :: (Finite n -> b -> a -> b) -> b -> Vector Vector n a -> b #

ifoldr' :: (Finite n -> a -> b -> b) -> b -> Vector Vector n a -> b #

ifoldl' :: (Finite n -> b -> a -> b) -> b -> Vector Vector n a -> b #

FunctorWithIndex (Finite n) (Vector Vector n) Source #

Since: 1.6.0

Instance details

Defined in Data.Vector.Generic.Sized

Methods

imap :: (Finite n -> a -> b) -> Vector Vector n a -> Vector Vector n b #

TraversableWithIndex (Finite n) (Vector Vector n) Source #

Since: 1.6.0

Instance details

Defined in Data.Vector.Generic.Sized

Methods

itraverse :: Applicative f => (Finite n -> a -> f b) -> Vector Vector n a -> f (Vector Vector n b) #

KnownNat n => Representable (Vector Vector n) Source # 
Instance details

Defined in Data.Vector.Generic.Sized

Associated Types

type Rep (Vector Vector n) 
Instance details

Defined in Data.Vector.Generic.Sized

type Rep (Vector Vector n) = Finite n

Methods

tabulate :: (Rep (Vector Vector n) -> a) -> Vector Vector n a #

index :: Vector Vector n a -> Rep (Vector Vector n) -> a #

Eq1 v => Eq1 (Vector v n) Source # 
Instance details

Defined in Data.Vector.Generic.Sized.Internal

Methods

liftEq :: (a -> b -> Bool) -> Vector v n a -> Vector v n b -> Bool #

Ord1 v => Ord1 (Vector v n) Source # 
Instance details

Defined in Data.Vector.Generic.Sized.Internal

Methods

liftCompare :: (a -> b -> Ordering) -> Vector v n a -> Vector v n b -> Ordering #

Show1 v => Show1 (Vector v n) Source # 
Instance details

Defined in Data.Vector.Generic.Sized.Internal

Methods

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

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

(KnownNat n, n ~ (1 + m)) => Comonad (Vector Vector n) Source #

Non-empty sized vectors are lawful comonads.

extract is head

duplicate generates all unique sequences of a vector with the same length as it, using wrap-around.

e.g. duplicate [1,2,3,4,5] = [[1,2,3,4,5], [2,3,4,5,1], [3,4,5,1,2], [4,5,1,2,3], [5,1,2,3,4]]

Instance details

Defined in Data.Vector.Generic.Sized

Methods

extract :: Vector Vector n a -> a #

duplicate :: Vector Vector n a -> Vector Vector n (Vector Vector n a) #

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

(KnownNat n, n ~ (1 + m)) => ComonadApply (Vector Vector n) Source # 
Instance details

Defined in Data.Vector.Generic.Sized

Methods

(<@>) :: Vector Vector n (a -> b) -> Vector Vector n a -> Vector Vector n b #

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

(<@) :: Vector Vector n a -> Vector Vector n b -> Vector Vector n a #

KnownNat n => Distributive (Vector Vector n) Source # 
Instance details

Defined in Data.Vector.Generic.Sized

Methods

distribute :: Functor f => f (Vector Vector n a) -> Vector Vector n (f a) #

collect :: Functor f => (a -> Vector Vector n b) -> f a -> Vector Vector n (f b) #

distributeM :: Monad m => m (Vector Vector n a) -> Vector Vector n (m a) #

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

KnownNat n => Applicative (Vector Vector n) Source #

The Applicative instance for sized vectors does not have the same behaviour as the Applicative instance for the unsized vectors found in the vectors package. The instance defined here has the same behaviour as the ZipList instance.

Instance details

Defined in Data.Vector.Generic.Sized

Methods

pure :: a -> Vector Vector n a #

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

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

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

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

Functor v => Functor (Vector v n) Source # 
Instance details

Defined in Data.Vector.Generic.Sized.Internal

Methods

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

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

KnownNat n => Monad (Vector Vector n) Source #

Treats a Vector n a as, essentially, a Finite n -> a, and emulates the Monad instance for that function.

join :: Vector n (Vector n a) -> Vector n a gets the diagonal from a square "matrix".

Instance details

Defined in Data.Vector.Generic.Sized

Methods

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

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

return :: a -> Vector Vector n a #

Foldable v => Foldable (Vector v n) Source # 
Instance details

Defined in Data.Vector.Generic.Sized.Internal

Methods

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

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

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

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

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

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

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

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

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

toList :: Vector v n a -> [a] #

null :: Vector v n a -> Bool #

length :: Vector v n a -> Int #

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

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

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

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

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

Traversable v => Traversable (Vector v n) Source # 
Instance details

Defined in Data.Vector.Generic.Sized.Internal

Methods

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

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

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

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

(Vector v a, Binary a, KnownNat n) => Binary (Vector v n a) Source # 
Instance details

Defined in Data.Vector.Generic.Sized

Methods

put :: Vector v n a -> Put #

get :: Get (Vector v n a) #

putList :: [Vector v n a] -> Put #

NFData (v a) => NFData (Vector v n a) Source # 
Instance details

Defined in Data.Vector.Generic.Sized.Internal

Methods

rnf :: Vector v n a -> () #

(Monoid m, Vector v m, KnownNat n) => Monoid (Vector v n m) Source #

The Monoid instance for sized vectors does not have the same behaviour as the Monoid instance for the unsized vectors found in the vectors package. This instance has mempty = replicate mempty and mappend = zipWith mappend, where the vectors instance uses the empty vector and concatenation.

If mempty is not necessary, using the Semigroup instance over this Monoid will dodge the KnownNat constraint.

Instance details

Defined in Data.Vector.Generic.Sized

Methods

mempty :: Vector v n m #

mappend :: Vector v n m -> Vector v n m -> Vector v n m #

mconcat :: [Vector v n m] -> Vector v n m #

(Semigroup g, Vector v g) => Semigroup (Vector v n g) Source #

The Semigroup instance for sized vectors does not have the same behaviour as the Semigroup instance for the unsized vectors found in the vectors package. This instance has (<>) = zipWith (<>), but vectors uses concatentation.

Instance details

Defined in Data.Vector.Generic.Sized

Methods

(<>) :: Vector v n g -> Vector v n g -> Vector v n g #

sconcat :: NonEmpty (Vector v n g) -> Vector v n g #

stimes :: Integral b => b -> Vector v n g -> Vector v n g #

(Vector v a, Bits (v a), Bits a, KnownNat n) => Bits (Vector v n a) Source #

Only usable if v a is itself an instance of Bits, like in the case with the bitvec library Bit type for unboxed vectors.

Instance details

Defined in Data.Vector.Generic.Sized

Methods

(.&.) :: Vector v n a -> Vector v n a -> Vector v n a #

(.|.) :: Vector v n a -> Vector v n a -> Vector v n a #

xor :: Vector v n a -> Vector v n a -> Vector v n a #

complement :: Vector v n a -> Vector v n a #

shift :: Vector v n a -> Int -> Vector v n a #

rotate :: Vector v n a -> Int -> Vector v n a #

zeroBits :: Vector v n a #

bit :: Int -> Vector v n a #

setBit :: Vector v n a -> Int -> Vector v n a #

clearBit :: Vector v n a -> Int -> Vector v n a #

complementBit :: Vector v n a -> Int -> Vector v n a #

testBit :: Vector v n a -> Int -> Bool #

bitSizeMaybe :: Vector v n a -> Maybe Int #

bitSize :: Vector v n a -> Int #

isSigned :: Vector v n a -> Bool #

shiftL :: Vector v n a -> Int -> Vector v n a #

unsafeShiftL :: Vector v n a -> Int -> Vector v n a #

shiftR :: Vector v n a -> Int -> Vector v n a #

unsafeShiftR :: Vector v n a -> Int -> Vector v n a #

rotateL :: Vector v n a -> Int -> Vector v n a #

rotateR :: Vector v n a -> Int -> Vector v n a #

popCount :: Vector v n a -> Int #

(Vector v a, Bits (v a), FiniteBits a, KnownNat n) => FiniteBits (Vector v n a) Source #

Treats a bit vector as n times the size of the stored bits, reflecting the Bits instance; does not necessarily reflect exact in-memory representation. See Storable instance to get information on the actual in-memry representation.

Instance details

Defined in Data.Vector.Generic.Sized

Methods

finiteBitSize :: Vector v n a -> Int #

countLeadingZeros :: Vector v n a -> Int #

countTrailingZeros :: Vector v n a -> Int #

(KnownNat n, Typeable v, Typeable a, Data (v a)) => Data (Vector v n a) Source # 
Instance details

Defined in Data.Vector.Generic.Sized.Internal

Methods

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

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

toConstr :: Vector v n a -> Constr #

dataTypeOf :: Vector v n a -> DataType #

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

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

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

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

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

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

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

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

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

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

(Vector v a, Floating a, KnownNat n) => Floating (Vector v n a) Source # 
Instance details

Defined in Data.Vector.Generic.Sized

Methods

pi :: Vector v n a #

exp :: Vector v n a -> Vector v n a #

log :: Vector v n a -> Vector v n a #

sqrt :: Vector v n a -> Vector v n a #

(**) :: Vector v n a -> Vector v n a -> Vector v n a #

logBase :: Vector v n a -> Vector v n a -> Vector v n a #

sin :: Vector v n a -> Vector v n a #

cos :: Vector v n a -> Vector v n a #

tan :: Vector v n a -> Vector v n a #

asin :: Vector v n a -> Vector v n a #

acos :: Vector v n a -> Vector v n a #

atan :: Vector v n a -> Vector v n a #

sinh :: Vector v n a -> Vector v n a #

cosh :: Vector v n a -> Vector v n a #

tanh :: Vector v n a -> Vector v n a #

asinh :: Vector v n a -> Vector v n a #

acosh :: Vector v n a -> Vector v n a #

atanh :: Vector v n a -> Vector v n a #

log1p :: Vector v n a -> Vector v n a #

expm1 :: Vector v n a -> Vector v n a #

log1pexp :: Vector v n a -> Vector v n a #

log1mexp :: Vector v n a -> Vector v n a #

(KnownNat n, Storable a, Vector v a) => Storable (Vector v n a) Source #

Any sized vector containing Storable elements is itself Storable.

Instance details

Defined in Data.Vector.Generic.Sized

Methods

sizeOf :: Vector v n a -> Int #

alignment :: Vector v n a -> Int #

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

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

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

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

peek :: Ptr (Vector v n a) -> IO (Vector v n a) #

poke :: Ptr (Vector v n a) -> Vector v n a -> IO () #

(Ix a, Ord (v a), Vector v a) => Ix (Vector v n a) Source # 
Instance details

Defined in Data.Vector.Generic.Sized.Internal

Methods

range :: (Vector v n a, Vector v n a) -> [Vector v n a] #

index :: (Vector v n a, Vector v n a) -> Vector v n a -> Int #

unsafeIndex :: (Vector v n a, Vector v n a) -> Vector v n a -> Int #

inRange :: (Vector v n a, Vector v n a) -> Vector v n a -> Bool #

rangeSize :: (Vector v n a, Vector v n a) -> Int #

unsafeRangeSize :: (Vector v n a, Vector v n a) -> Int #

(Vector v a, Num a, KnownNat n) => Num (Vector v n a) Source # 
Instance details

Defined in Data.Vector.Generic.Sized

Methods

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

(-) :: Vector v n a -> Vector v n a -> Vector v n a #

(*) :: Vector v n a -> Vector v n a -> Vector v n a #

negate :: Vector v n a -> Vector v n a #

abs :: Vector v n a -> Vector v n a #

signum :: Vector v n a -> Vector v n a #

fromInteger :: Integer -> Vector v n a #

(KnownNat n, Vector v a, Read (v a)) => Read (Vector v n a) Source # 
Instance details

Defined in Data.Vector.Generic.Sized

Methods

readsPrec :: Int -> ReadS (Vector v n a) #

readList :: ReadS [Vector v n a] #

readPrec :: ReadPrec (Vector v n a) #

readListPrec :: ReadPrec [Vector v n a] #

(Vector v a, Fractional a, KnownNat n) => Fractional (Vector v n a) Source # 
Instance details

Defined in Data.Vector.Generic.Sized

Methods

(/) :: Vector v n a -> Vector v n a -> Vector v n a #

recip :: Vector v n a -> Vector v n a #

fromRational :: Rational -> Vector v n a #

Show (v a) => Show (Vector v n a) Source # 
Instance details

Defined in Data.Vector.Generic.Sized.Internal

Methods

showsPrec :: Int -> Vector v n a -> ShowS #

show :: Vector v n a -> String #

showList :: [Vector v n a] -> ShowS #

Eq (v a) => Eq (Vector v n a) Source # 
Instance details

Defined in Data.Vector.Generic.Sized.Internal

Methods

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

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

Ord (v a) => Ord (Vector v n a) Source # 
Instance details

Defined in Data.Vector.Generic.Sized.Internal

Methods

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

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

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

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

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

max :: Vector v n a -> Vector v n a -> Vector v n a #

min :: Vector v n a -> Vector v n a -> Vector v n a #

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

Defined in Data.Vector.Generic.Sized

Methods

hashWithSalt :: Int -> Vector Vector n a -> Int #

hash :: Vector Vector n a -> Int #

(Eq a, Hashable a, Storable a) => Hashable (Vector Vector n a) Source # 
Instance details

Defined in Data.Vector.Generic.Sized

Methods

hashWithSalt :: Int -> Vector Vector n a -> Int #

hash :: Vector Vector n a -> Int #

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

Defined in Data.Vector.Generic.Sized

Methods

hashWithSalt :: Int -> Vector Vector n a -> Int #

hash :: Vector Vector n a -> Int #

(Unbox a, KnownNat n) => Unbox (Vector Vector n a) Source #

This instance allows to define sized matrices and tensors backed by continuous memory segments, which reduces memory allocations and relaxes pressure on garbage collector.

Instance details

Defined in Data.Vector.Unboxed.Mutable.Sized

newtype MVector s (Vector Vector n a) 
Instance details

Defined in Data.Vector.Unboxed.Mutable.Sized

newtype MVector s (Vector Vector n a) = MV_Sized (MVector s a)
type Rep (Vector Vector n) Source # 
Instance details

Defined in Data.Vector.Generic.Sized

type Rep (Vector Vector n) = Finite n
type Mutable (Vector v n) 
Instance details

Defined in Data.Vector.Generic.Sized

type Mutable (Vector v n) = MVector (Mutable v) n
newtype Vector (Vector Vector n a) 
Instance details

Defined in Data.Vector.Unboxed.Mutable.Sized

newtype Vector (Vector Vector n a) = V_Sized (Vector a)