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

Safe HaskellNone

Synthesizer.LLVM.Simple.SignalPacked

Synopsis

Documentation

pack :: (C signal, C v, a ~ Element v) => signal a -> signal vSource

Convert a signal of scalar values into one using processor vectors. If the signal length is not divisible by the chunk size, then the last chunk is dropped.

packRotate :: (C signal, C v, a ~ Element v) => signal a -> signal vSource

Convert a signal of scalar values into one using processor vectors. If the signal length is not divisible by the chunk size, then the last chunk is dropped.

packSmall :: (C signal, C v, a ~ Element v) => signal a -> signal vSource

Like pack but duplicates the code for creating elements. That is, for vectors of size n, the code of the input signal will be emitted n times. This is efficient only for simple input generators.

unpack :: (C signal, Read v, a ~ Element v, ReadIt v ~ itv, C itv) => signal v -> signal aSource

unpackRotate :: (C signal, Read v, a ~ Element v, ReadIt v ~ itv, C itv) => signal v -> signal aSource