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

Synthesizer.LLVM.Simple.Value

Documentation

newtype T a Source

Constructors

Cons 

Fields

decons :: forall r. TValue r a
 

Instances

(C a, IsArithmetic a, IsConst a) => Enum (T a) 
(C a, IsConst a, IsFloating a) => C (T a) 
(C a, IsConst a, IsFloating a) => C (T a) 
(C a, IsConst a, IsFloating a) => C (T a) 
(C a, IsArithmetic a, IsConst a) => C (T a) 
(IsArithmetic a, IsConst a) => C (T a)

We do not require a numeric prelude superclass, thus also LLVM only types like vectors are instances.

(C a, IsArithmetic a, IsConst a, IsPrimitive a, IsPowerOf2 n) => C (T a) (T (Vector n a)) 
(C a, IsArithmetic a, IsConst a) => C (T a) (T a) 
IsConst a => Flatten (T a) (Value a) 

twoPi :: (C a, IsConst a, IsFloating a) => T aSource

lift1 :: (forall r. Value a -> CodeGenFunction r (Value b)) -> T a -> T bSource

lift2 :: (forall r. Value a -> Value b -> CodeGenFunction r (Value c)) -> T a -> T b -> T cSource

constant :: IsConst a => a -> T aSource

binop :: (forall r. Value a -> Value b -> TValue r c) -> T a -> T b -> T cSource

class Flatten value register | value -> register whereSource

Methods

flatten :: value -> CodeGenFunction r registerSource

unfold :: register -> valueSource

Instances

Flatten () () 
(C v, Flatten v r) => Flatten (T v) r 
Flatten v r => Flatten (T v) (T r) 
Flatten ah al => Flatten (Parameter ah) (Parameter al) 
Flatten ah al => Flatten (Result ah) (Result al) 
Flatten ah al => Flatten (Parameter ah) (Parameter al) 
Flatten ah al => Flatten (State ah) (State al) 
Flatten ah al => Flatten (Parameter ah) (Parameter al) 
Flatten ah al => Flatten (Parameter ah) (Parameter al) 
IsConst a => Flatten (T a) (Value a) 
Flatten ah al => Flatten (ParameterPacked ah) (ParameterPacked al) 
Flatten ah al => Flatten (Parameter ah) (Parameter al) 
(Flatten ah al, Flatten bh bl) => Flatten (ah, bh) (al, bl) 
Flatten ah al => Flatten (CascadeParameter n ah) (CascadeParameter n al) 
(Flatten ah al, Nat n) => Flatten (Parameter n ah) (Parameter n al) 
(Flatten ah al, Flatten bh bl, Flatten ch cl) => Flatten (ah, bh, ch) (al, bl, cl) 

flattenTraversable :: (Flatten value register, Traversable f) => f value -> CodeGenFunction r (f register)Source

unfoldFunctor :: (Flatten value register, Functor f) => f register -> f valueSource