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

Safe HaskellNone

Synthesizer.LLVM.Filter.Chebyshev

Synopsis

Documentation

parameterCausalA :: (C process, C a, TranscendentalConstant a, IsFloating a, IsSized a, Positive n, Natural n, Positive (n :*: SizeOf a), IsSized (ParameterStruct n a), SizeOf (ParameterStruct n a) ~ paramSize, (n :*: UnknownSize) ~ paramSize, Positive paramSize) => Proxy n -> Passband -> process (Value a, Value a) (ParameterValue n a)Source

n must be at least one in order to allow amplification by the first partial filter. The causal processes should be more efficient than parameterA and parameterB because they use stack-based alloca instead of malloc.

parameterCausalB :: (C process, C a, TranscendentalConstant a, IsFloating a, IsSized a, Positive n, Natural n, Positive (n :*: SizeOf a), IsSized (ParameterStruct n a), SizeOf (ParameterStruct n a) ~ paramSize, (n :*: UnknownSize) ~ paramSize, Positive paramSize) => Proxy n -> Passband -> process (Value a, Value a) (ParameterValue n a)Source

n must be at least one in order to allow amplification by the first partial filter. The causal processes should be more efficient than parameterA and parameterB because they use stack-based alloca instead of malloc.

parameterA :: (C a, TranscendentalConstant a, IsFloating a, IsSized a, Positive n, Natural n, Positive (n :*: SizeOf a), IsSized (ParameterStruct n a), SizeOf (ParameterStruct n a) ~ paramSize, (n :*: UnknownSize) ~ paramSize, Positive paramSize) => Proxy n -> Passband -> Value a -> Value a -> CodeGenFunction r (ParameterValue n a)Source

parameterB :: (C a, TranscendentalConstant a, IsFloating a, IsSized a, Positive n, Natural n, Positive (n :*: SizeOf a), IsSized (ParameterStruct n a), SizeOf (ParameterStruct n a) ~ paramSize, (n :*: UnknownSize) ~ paramSize, Positive paramSize) => Proxy n -> Passband -> Value a -> Value a -> CodeGenFunction r (ParameterValue n a)Source

data ParameterValue n a Source

Instances

(Natural n, IsSized a, Positive (:*: n UnknownSize)) => C (ParameterValue n a) 
(Natural n, IsSized a) => Phi (ParameterValue n a) 
(Natural n, IsSized a) => Undefined (ParameterValue n a) 
(Natural n, IsSized a) => Zero (ParameterValue n a) 
MakeArguments (ParameterValue n a) 
(~ * (Value a) (Scalar v), PseudoModule v, C v, ~ * (Element v) (Value a), IntegerConstant a, PseudoRing v, IntegerConstant v, C v, IsPrimitive a, IsSized a, Positive (:*: n UnknownSize), Natural n) => C (ParameterValue n a) v v 
(IsSized v, PseudoModule v, ~ * (Scalar v) a, IsSized a, IntegerConstant a, Natural n, Positive (:*: n UnknownSize)) => C (ParameterValue n a) (Value v) (Value v) 

causal :: (C process, C v, PseudoModule v, Scalar v ~ Value a, IsSized a, IsArithmetic a, IntegerConstant a, Natural n, Positive (n :*: UnknownSize)) => process (ParameterValue n a, v) vSource

causalPacked :: (C process, PseudoRing v, IntegerConstant v, C v, PseudoModule v, Scalar v ~ Value a, C v, Element v ~ Value a, IntegerConstant a, IsPrimitive a, IsSized a, Positive (n :*: UnknownSize), Natural n) => process (ParameterValue n a, v) vSource

causalP :: (C v, PseudoModule v, Scalar v ~ Value a, IsSized a, IsArithmetic a, IntegerConstant a, Natural n, Positive (n :*: UnknownSize)) => T p (ParameterValue n a, v) vSource

causalPackedP :: (C v, PseudoRing v, IntegerConstant v, PseudoModule v, C v, Element v ~ Value a, Scalar v ~ Value a, IntegerConstant a, IsPrimitive a, IsSized a, Positive (n :*: UnknownSize), Natural n) => T p (ParameterValue n a, v) vSource

fixSize :: Proxy n -> process (ParameterValue n a, x) y -> process (ParameterValue n a, x) ySource