- pack :: (Access n a va, Access n b vb) => T p a b -> T p va vb
- packSmall :: (Access n a va, Access n b vb) => T p a b -> T p va vb
- unpack :: (Access n a va, Access n b vb, Zero va, Undefined b, Memory va vap, IsSized vap vas, Memory vb vbp, IsSized vbp vbs) => T p va vb -> T p a b
- raise :: (Storable a, IsArithmetic a, IsPrimitive a, IsConst a, MakeValueTuple a (Value a), IsFirstClass a, IsSized a size, IsPowerOf2 n, Mul n size ps, Pos ps) => T p a -> T p (Value (Vector n a)) (Value (Vector n a))
- amplify :: (Storable a, IsArithmetic a, IsPrimitive a, IsConst a, MakeValueTuple a (Value a), IsFirstClass a, IsSized a size, IsPowerOf2 n, Mul n size ps, Pos ps) => T p a -> T p (Value (Vector n a)) (Value (Vector n a))
- amplifyStereo :: (Storable a, IsArithmetic a, IsPrimitive a, IsConst a, MakeValueTuple a (Value a), IsFirstClass a, IsSized a size, IsPowerOf2 n, Mul n size ps, Pos ps) => T p a -> T p (T (Value (Vector n a))) (T (Value (Vector n a)))
- osciCore :: (IsFirstClass t, IsSized t size, Fraction t, IsConst t, Real t, IsPrimitive t, IsPowerOf2 n, C t) => T p (Value (Vector n t), Value (Vector n t)) (Value (Vector n t))
- osciSimple :: (IsFirstClass t, IsSized t size, Fraction t, IsConst t, Real t, IsPrimitive t, IsPowerOf2 n, C t) => (forall r. Value (Vector n t) -> CodeGenFunction r y) -> T p (Value (Vector n t), Value (Vector n t)) y
- shapeModOsci :: (IsFirstClass t, IsSized t size, Fraction t, IsConst t, Real t, IsPrimitive t, IsPowerOf2 n, C t) => (forall r. c -> Value (Vector n t) -> CodeGenFunction r y) -> T p (c, (Value (Vector n t), Value (Vector n t))) y
Documentation
pack :: (Access n a va, Access n b vb) => T p a b -> T p va vbSource
Run a scalar process on packed data. If the signal length is not divisible by the chunk size, then the last chunk is dropped.
packSmall :: (Access n a va, Access n b vb) => T p a b -> T p va vbSource
Like pack
but duplicates the code for the scalar process.
That is, for vectors of size n,
the code for the scalar causal process will be written n times.
This is efficient only for simple input processes.
unpack :: (Access n a va, Access n b vb, Zero va, Undefined b, Memory va vap, IsSized vap vas, Memory vb vbp, IsSized vbp vbs) => T p va vb -> T p a bSource
Run a packed process on scalar data.
If the signal length is not divisible by the chunk size,
then the last chunk is dropped.
In order to stay causal, we have to delay the output by n
samples.
raise :: (Storable a, IsArithmetic a, IsPrimitive a, IsConst a, MakeValueTuple a (Value a), IsFirstClass a, IsSized a size, IsPowerOf2 n, Mul n size ps, Pos ps) => T p a -> T p (Value (Vector n a)) (Value (Vector n a))Source
amplify :: (Storable a, IsArithmetic a, IsPrimitive a, IsConst a, MakeValueTuple a (Value a), IsFirstClass a, IsSized a size, IsPowerOf2 n, Mul n size ps, Pos ps) => T p a -> T p (Value (Vector n a)) (Value (Vector n a))Source
amplifyStereo :: (Storable a, IsArithmetic a, IsPrimitive a, IsConst a, MakeValueTuple a (Value a), IsFirstClass a, IsSized a size, IsPowerOf2 n, Mul n size ps, Pos ps) => T p a -> T p (T (Value (Vector n a))) (T (Value (Vector n a)))Source
osciCore :: (IsFirstClass t, IsSized t size, Fraction t, IsConst t, Real t, IsPrimitive t, IsPowerOf2 n, C t) => T p (Value (Vector n t), Value (Vector n t)) (Value (Vector n t))Source
osciSimple :: (IsFirstClass t, IsSized t size, Fraction t, IsConst t, Real t, IsPrimitive t, IsPowerOf2 n, C t) => (forall r. Value (Vector n t) -> CodeGenFunction r y) -> T p (Value (Vector n t), Value (Vector n t)) ySource
shapeModOsci :: (IsFirstClass t, IsSized t size, Fraction t, IsConst t, Real t, IsPrimitive t, IsPowerOf2 n, C t) => (forall r. c -> Value (Vector n t) -> CodeGenFunction r y) -> T p (c, (Value (Vector n t), Value (Vector n t))) ySource