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

Safe HaskellNone
LanguageHaskell98

Synthesizer.LLVM.CausalParameterized.FunctionalPlug

Synopsis

Documentation

data T pp pl inp out Source

This data type detects sharing.

Instances

Functor (T pp pl inp) Source 
Applicative (T pp pl inp) Source 
(Field b, Real b, RationalConstant b) => Fractional (T pp pl a b) Source 
(PseudoRing b, Real b, IntegerConstant b) => Num (T pp pl a b) Source 
(Transcendental b, RationalConstant b) => C (T pp pl a b) Source 
(Transcendental b, RationalConstant b) => C (T pp pl a b) Source 
(Field b, RationalConstant b) => C (T pp pl a b) Source 
(PseudoRing b, IntegerConstant b) => C (T pp pl a b) Source 
Additive b => C (T pp pl a b) Source 

($&) :: T pl a b -> T pp pl inp a -> T pp pl inp b infixr 0 Source

(&|&) :: T pp pl inp a -> T pp pl inp b -> T pp pl inp (a, b) infixr 3 Source

run :: Default b => T pp pl a (Element b) -> IO (pp -> pl -> T a b) Source

runPlugOut :: T pp pl a x -> T x b -> IO (pp -> pl -> T a b) Source

fromSignal :: T pl a -> T pp pl inp a Source

plug :: (Read b, Default b) => Input pp a b -> T pp pl a (Element b) Source

type Input pp a = Reader (pp, a) Source

withArgs :: (MakeArguments a, Default b) => (Arguments (Input pp a) a -> T pp pl a (Element b)) -> IO (pp -> pl -> T a b) Source

withArgsPlugOut :: MakeArguments a => (Arguments (Input pp a) a -> T pp pl a x) -> T x b -> IO (pp -> pl -> T a b) Source

class MakeArguments arg where Source

Methods

makeArgs :: Functor f => f arg -> Arguments f arg Source

type family Arguments f arg Source

Instances

type Arguments f (Vector a) = f (Vector a) Source 
type Arguments f (T a b) = (Arguments f a, Arguments f b) Source 
type Arguments f (T i a) = f (T i a) Source