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

Safe HaskellNone
LanguageHaskell98

Synthesizer.LLVM.Frame.StereoInterleaved

Documentation

data T n a Source #

Instances
(Positive n, C a, Storable a) => Storable (T n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.StereoInterleavedCode

Methods

sizeOf :: T n a -> Int #

alignment :: T n a -> Int #

peekElemOff :: Ptr (T n a) -> Int -> IO (T n a) #

pokeElemOff :: Ptr (T n a) -> Int -> T n a -> IO () #

peekByteOff :: Ptr b -> Int -> IO (T n a) #

pokeByteOff :: Ptr b -> Int -> T n a -> IO () #

peek :: Ptr (T n a) -> IO (T n a) #

poke :: Ptr (T n a) -> T n a -> IO () #

Vector n a => C (T n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.StereoInterleavedCode

Methods

pack :: T n a -> Struct (T n a)

unpack :: Struct (T n a) -> T n a

(Positive n, C a) => C (T n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.StereoInterleavedCode

Associated Types

type Repr (T n a) :: Type

Methods

cons :: T n a -> T0 (T n a)

undef :: T0 (T n a)

zero :: T0 (T n a)

phi :: BasicBlock -> T0 (T n a) -> CodeGenFunction r (T0 (T n a))

addPhi :: BasicBlock -> T0 (T n a) -> T0 (T n a) -> CodeGenFunction r ()

(Positive n, Additive a) => Additive (T n a) Source #

This instance allows to run arrange on interleaved stereo vectors.

Instance details

Defined in Synthesizer.LLVM.Frame.StereoInterleavedCode

Methods

add :: T0 (T n a) -> T0 (T n a) -> CodeGenFunction r (T0 (T n a))

sub :: T0 (T n a) -> T0 (T n a) -> CodeGenFunction r (T0 (T n a))

neg :: T0 (T n a) -> CodeGenFunction r (T0 (T n a))

(Positive n, Vector a) => C (T n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.StereoInterleavedCode

Methods

load :: Value (Ptr (T n a)) -> CodeGenFunction r (T0 (T n a))

store :: T0 (T n a) -> Value (Ptr (T n a)) -> CodeGenFunction r ()

type Repr (T n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.StereoInterleavedCode

type Repr (T n a) = (Repr n a, Repr n a)

type Value n a = T (T n a) Source #

interleave :: (Positive n, C a) => T (Exp (T n a)) -> Exp (T n a) Source #

deinterleave :: (Positive n, C a) => Exp (T n a) -> T (Exp (T n a)) Source #

amplify :: (Positive n, PseudoRing a) => Exp a -> Exp (T n a) -> Exp (T n a) Source #

envelope :: (Positive n, PseudoRing a) => Exp (T n a) -> Exp (T n a) -> Exp (T n a) Source #