Copyright | (c) Matthew Naylor 2019 (c) Alexandre Joannou 2019 |
---|---|
License | MIT |
Maintainer | mattfn@gmail.com |
Stability | experimental |
Safe Haskell | Safe-Inferred |
Language | GHC2021 |
Synopsis
- tree1 :: (a -> a -> a) -> [a] -> a
- treeM1 :: Monad m => (a -> a -> m a) -> [a] -> m a
- tree :: (a -> a -> a) -> a -> [a] -> a
- orList :: Bits a => [a] -> a
- andList :: Bits a => [a] -> a
- sumList :: Num a => [a] -> a
- select :: Bits a => [(Bit 1, a)] -> a
- selectList :: Bits a => [(Bit 1, [a])] -> [a]
- listIndex :: (KnownNat n, Bits a) => Bit n -> [a] -> a
- (?) :: Bits a => Bit 1 -> (a, a) -> a
- (===) :: Bits a => a -> a -> Bit 1
- (=!=) :: Bits a => a -> a -> Bit 1
- zero :: forall a. Bits a => a
- ones :: forall a. Bits a => a
- dontCare :: forall a. Bits a => a
- delay :: Bits a => a -> a -> a
- buffer :: Bits a => a -> a
- old :: Bits a => a -> a
- delayEn :: Bits a => a -> Bit 1 -> a -> a
- binaryEncode :: Bit (2 ^ n) -> Bit n
- binaryDecode :: Bit n -> Bit (2 ^ n)
- firstHot :: KnownNat n => Bit n -> Bit n
- mergeWrites :: forall a. Bits a => MergeStrategy -> [(Bit 1, a)] -> a
- fairScheduler :: KnownNat n => (Bit n, Bit n) -> (Bit n, Bit n)
- var :: forall a. Bits a => String -> a
Documentation
tree1 :: (a -> a -> a) -> [a] -> a Source #
Parallel reduce for a commutative and associative operator. Input list must be non-empty.
tree :: (a -> a -> a) -> a -> [a] -> a Source #
Like tree1
, but input list may be empty,
in which case the zero element is returned
selectList :: Bits a => [(Bit 1, [a])] -> [a] Source #
Variant of select
where right-hand-side is a list
(?) :: Bits a => Bit 1 -> (a, a) -> a infixl 3 Source #
Ternary conditional operator (generic multiplexer)
mergeWrites :: forall a. Bits a => MergeStrategy -> [(Bit 1, a)] -> a Source #
fairScheduler :: KnownNat n => (Bit n, Bit n) -> (Bit n, Bit n) Source #
Function for fair scheduling of n clients
Orphan instances
HasField "_0" (a, b) a # | |
HasField "_1" (a, b) b # | |
HasField "fst" (a, b) a # | |
HasField "snd" (a, b) b # | |
HasField "_0" (a, b, c) a # | |
HasField "_1" (a, b, c) b # | |
HasField "_2" (a, b, c) c # | |
HasField "_0" (a, b, c, d) a # | |
HasField "_1" (a, b, c, d) b # | |
HasField "_2" (a, b, c, d) c # | |
HasField "_3" (a, b, c, d) d # | |
Bits a => IfThenElse (Bit 1) a # | Overloaded if-then-else |
ifThenElse :: Bit 1 -> a -> a -> a Source # |