Safe Haskell | None |
---|---|
Language | Haskell98 |
Synthesizer.LLVM.Causal.Controlled
Description
This module provides a type class that automatically selects a filter for a given parameter type. We choose the dependency this way because there may be different ways to specify the filter parameters but there is only one implementation of the filter itself.
Synopsis
Documentation
class (a ~ Input parameter b, b ~ Output parameter a) => C parameter a b where Source #
A filter parameter type uniquely selects a filter function. However it does not uniquely determine the input and output type, since the same filter can run on mono and stereo signals.
Instances
(C ae ve, Aggregate ae a, Aggregate ve v, C a, C v) => C (Parameter a) v v Source # | |
(a ~ Scalar v, PseudoModule v, RationalConstant a, C a, C v) => C (Parameter a) v v Source # | |
(C ae ve, Aggregate ae a, Aggregate ve v, C a, C v) => C (Parameter a) v (Result v) Source # | |
(PseudoModule v, Scalar v ~ a, RationalConstant a, C a, C v) => C (Parameter a) v (Result v) Source # | |
(PseudoRing a, RationalConstant a, C a) => C (Parameter a) (T a) (T a) Source # | |
(Vector n a, n ~ D3, PseudoRing a, inp ~ T a, out ~ T a) => C (ParameterMV a) (T inp) (T out) Source # | |
Defined in Synthesizer.LLVM.Causal.Controlled | |
(C a, Vector D4 a, PseudoRing a) => C (Parameter a) (T a) (T a) Source # | |
(C ae ve, Aggregate ae a, Aggregate ve v, C v, Natural n) => C (Parameter n a) v v Source # | |
(C ae ve, Aggregate ae a, Aggregate ve v, C a, C v, Natural n) => C (CascadeParameter n a) v v Source # | |
Defined in Synthesizer.LLVM.Causal.Controlled Associated Types type Input (CascadeParameter n a) v :: Type Source # type Output (CascadeParameter n a) v :: Type Source # Methods process :: T (CascadeParameter n a, v) v Source # | |
(a ~ Scalar v, PseudoModule v, C a, IntegerConstant a, C v, Natural n, Positive (n :*: UnknownSize), inp ~ T v, out ~ T v) => C (ParameterValue n a) inp out Source # | |
Defined in Synthesizer.LLVM.Causal.Controlled Associated Types type Input (ParameterValue n a) out :: Type Source # type Output (ParameterValue n a) inp :: Type Source # Methods process :: T (ParameterValue n a, inp) out Source # |