synthesizer-llvm-1.1.0.1: Efficient signal processing using runtime compilation

Safe HaskellNone
LanguageHaskell98

Synthesizer.LLVM.Filter.Moog

Documentation

data Parameter n a Source #

Instances
Functor (Parameter n) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

Methods

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

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

Applicative (Parameter n) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

Methods

pure :: a -> Parameter n a #

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

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

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

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

Foldable (Parameter n) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

Methods

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

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

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

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

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

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

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

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

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

null :: Parameter n a -> Bool #

length :: Parameter n a -> Int #

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

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

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

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

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

Traversable (Parameter n) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

Methods

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

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

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

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

(C a, Natural n) => C (Parameter n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

Associated Types

type Struct (Parameter n a) :: Type

Methods

load :: Value (Ptr (Struct (Parameter n a))) -> CodeGenFunction r (Parameter n a)

store :: Parameter n a -> Value (Ptr (Struct (Parameter n a))) -> CodeGenFunction r ()

decompose :: Value (Struct (Parameter n a)) -> CodeGenFunction r (Parameter n a)

compose :: Parameter n a -> CodeGenFunction r (Value (Struct (Parameter n a)))

(Phi a, Natural n) => Phi (Parameter n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

Methods

phi :: BasicBlock -> Parameter n a -> CodeGenFunction r (Parameter n a)

addPhi :: BasicBlock -> Parameter n a -> Parameter n a -> CodeGenFunction r ()

(Undefined a, Natural n) => Undefined (Parameter n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

Methods

undef :: Parameter n a

(Zero a, Natural n) => Zero (Parameter n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

Methods

zero :: Parameter n a

(C v, Natural n) => C (Parameter n v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

Methods

insert :: Value Word32 -> Element (Parameter n v) -> Parameter n v -> CodeGenFunction r (Parameter n v)

(Simple v, Natural n) => Simple (Parameter n v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

Associated Types

type Element (Parameter n v) :: Type

type Size (Parameter n v) :: Type

Methods

shuffleMatch :: ConstValue (Vector (Size (Parameter n v)) Word32) -> Parameter n v -> CodeGenFunction r (Parameter n v)

extract :: Value Word32 -> Parameter n v -> CodeGenFunction r (Element (Parameter n v))

(Natural n, Write v, Element v ~ b, C b, Phi a, Undefined a, Aggregate ae a, Aggregate be b, C ae be) => C (Parameter n a) v v Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.ControlledPacked

Associated Types

type Output (Parameter n a) v :: Type Source #

type Input (Parameter n a) v :: Type Source #

Methods

process :: T (Parameter n a, v) v Source #

(C ae ve, Aggregate ae a, Aggregate ve v, C v, Natural n) => C (Parameter n a) v v Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

Associated Types

type Input (Parameter n a) v :: Type Source #

type Output (Parameter n a) v :: Type Source #

Methods

process :: T (Parameter n a, v) v Source #

(n ~ m, Aggregate e mv) => Aggregate (Parameter n e) (Parameter m mv) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

Associated Types

type MultiValuesOf (Parameter n e) :: Type

type ExpressionsOf (Parameter m mv) :: Type

Methods

bundle :: Parameter n e -> CodeGenFunction r (Parameter m mv)

dissect :: Parameter m mv -> Parameter n e

type Struct (Parameter n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

type Struct (Parameter n a)
type Element (Parameter n v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

type Element (Parameter n v) = Parameter n (Element v)
type Size (Parameter n v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

type Size (Parameter n v) = Size v
type ExpressionsOf (Parameter m mv) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

type ExpressionsOf (Parameter m mv) = Parameter m (ExpressionsOf mv)
type MultiValuesOf (Parameter n e) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Moog

type MultiValuesOf (Parameter n e) = Parameter n (MultiValuesOf e)
type Output (Parameter n a) v Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.ControlledPacked

type Output (Parameter n a) v = v
type Input (Parameter n a) v Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.ControlledPacked

type Input (Parameter n a) v = v
type Input (Parameter n a) v Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

type Input (Parameter n a) v = v
type Output (Parameter n a) v Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

type Output (Parameter n a) v = v

parameter :: (Natural n, C a) => Proxy n -> a -> a -> Parameter n a Source #

causal :: (Natural n, C v, C ae ve, Aggregate ae a, Aggregate ve v) => T (Parameter n a, v) v Source #

causalInit :: (Natural n, C v, C ae ve, Aggregate ae a, Aggregate ve v) => ve -> T (Parameter n a, v) v Source #