clash-prelude-0.2: CAES Language for Synchronous Hardware

Safe HaskellNone
LanguageHaskell2010

CLaSH.Sized.Vector

Documentation

data Vec where Source

Constructors

Nil :: Vec 0 a 
(:>) :: a -> Vec n a -> Vec (n + 1) a 

Instances

Functor (Vec n) 
KnownNat n => Applicative (Vec n) 
Foldable (Vec n) 
Traversable (Vec n) 
Eq a => Eq (Vec n a) 
Show a => Show (Vec n a) 
Pack (Vec n a) 
type SignalP (Vec n a) = Vec n (Signal a) 

(<:) :: Vec n a -> a -> Vec (n + 1) a Source

vhead :: Vec (n + 1) a -> a Source

vtail :: Vec (n + 1) a -> Vec n a Source

vlast :: Vec (n + 1) a -> a Source

vinit :: Vec (n + 1) a -> Vec n a Source

(+>>) :: a -> Vec n a -> Vec n a Source

(<<+) :: Vec n a -> a -> Vec n a Source

(<++>) :: Vec n a -> Vec m a -> Vec (n + m) a Source

vconcat :: Vec n (Vec m a) -> Vec (n * m) a Source

vsplit :: SNat m -> Vec (m + n) a -> (Vec m a, Vec n a) Source

vsplitI :: KnownNat m => Vec (m + n) a -> (Vec m a, Vec n a) Source

vunconcat :: SNat n -> SNat m -> Vec (n * m) a -> Vec n (Vec m a) Source

vunconcatI :: (KnownNat n, KnownNat m) => Vec (n * m) a -> Vec n (Vec m a) Source

vmerge :: Vec n a -> Vec n a -> Vec (n + n) a Source

vreverse :: Vec n a -> Vec n a Source

vmap :: (a -> b) -> Vec n a -> Vec n b Source

vzipWith :: (a -> b -> c) -> Vec n a -> Vec n b -> Vec n c Source

vfoldr :: (a -> b -> b) -> b -> Vec n a -> b Source

vfoldl :: (b -> a -> b) -> b -> Vec n a -> b Source

vfoldr1 :: (a -> a -> a) -> Vec (n + 1) a -> a Source

vfoldl1 :: (a -> a -> a) -> Vec (n + 1) a -> a Source

vzip :: Vec n a -> Vec n b -> Vec n (a, b) Source

vunzip :: Vec n (a, b) -> (Vec n a, Vec n b) Source

(!) :: (KnownNat n, Integral i) => Vec n a -> i -> a Source

vreplace :: (KnownNat n, Integral i) => Vec n a -> i -> a -> Vec n a Source

vtake :: SNat m -> Vec (m + n) a -> Vec m a Source

vtakeI :: KnownNat m => Vec (m + n) a -> Vec m a Source

vdrop :: SNat m -> Vec (m + n) a -> Vec n a Source

vdropI :: KnownNat m => Vec (m + n) a -> Vec n a Source

vexact :: SNat m -> Vec (m + (n + 1)) a -> a Source

vselect :: ((f + (s * n)) + 1) <= i => SNat f -> SNat s -> SNat (n + 1) -> Vec i a -> Vec (n + 1) a Source

vselectI :: (((f + (s * n)) + 1) <= i, KnownNat (n + 1)) => SNat f -> SNat s -> Vec i a -> Vec (n + 1) a Source

vcopy :: SNat n -> a -> Vec n a Source

vcopyI :: KnownNat n => a -> Vec n a Source

viterate :: SNat n -> (a -> a) -> a -> Vec n a Source

viterateI :: KnownNat n => (a -> a) -> a -> Vec n a Source

vgenerate :: SNat n -> (a -> a) -> a -> Vec n a Source

vgenerateI :: KnownNat n => (a -> a) -> a -> Vec n a Source

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

v :: Lift a => [a] -> ExpQ Source