Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module allows abstraction of operations that operate on the time axis and do also work on signal types without sample values. The most distinctive instances are certainly Dirac signals and chunky time values.
Synopsis
- class Read sig where
- class Read sig => NormalForm sig where
- class (Read sig, Monoid sig) => Transform sig where
- dropMarginRemChunky :: Transform sig => (sig -> [Int]) -> Int -> Int -> sig -> (Int, sig)
- intToChunky :: (C a, C a) => String -> Int -> T a
- intToChunky98 :: (Num a, C a) => String -> Int -> T a
- empty :: Monoid sig => sig
- cycle :: Monoid sig => sig -> sig
- append :: Monoid sig => sig -> sig -> sig
- concat :: Monoid sig => [sig] -> sig
- lengthAtLeast :: Transform sig => Int -> sig -> Bool
- lengthAtMost :: Transform sig => Int -> sig -> Bool
- sliceVertical :: Transform sig => Int -> sig -> T sig
Documentation
Instances
Read LazySize Source # | |
Read [y] Source # | |
Integral a => Read (T a) Source # | |
(C a, C a) => Read (T a) Source # | |
Storable y => Read (Vector y) Source # | |
Storable y => Read (Vector y) Source # | |
Read (T y) Source # | |
Read (Chunk a) Source # | |
Integral t => Read (T t y) Source # | |
Integral t => Read (T t y) Source # | We abuse event lists for efficient representation of piecewise constant signals. |
(Read a, Read b) => Read (T a b) Source # | |
class Read sig => NormalForm sig where Source #
evaluateHead :: sig -> () Source #
Evaluating the first value of the signal is necessary for avoiding a space leaks if you repeatedly drop a prefix from the signal and do not consume something from it.
Instances
class (Read sig, Monoid sig) => Transform sig where Source #
take :: Int -> sig -> sig Source #
drop :: Int -> sig -> sig Source #
dropMarginRem :: Int -> Int -> sig -> (Int, sig) Source #
Instances
Transform LazySize Source # | |
Transform [y] Source # | |
(Integral a, C a) => Transform (T a) Source # | |
(C a, C a) => Transform (T a) Source # | |
Storable y => Transform (Vector y) Source # | |
Storable y => Transform (Vector y) Source # | |
Transform (T y) Source # | |
Transform (Chunk a) Source # | |
(Integral t, C t) => Transform (T t y) Source # | |
(Integral t, C t) => Transform (T t y) Source # | The function defined here are based on the interpretation of event lists as piecewise constant signals. They do not fit to the interpretation of atomic events. Because e.g. it makes no sense to split an atomic event into two instances by splitAt, and it is also not clear, whether dropping the first chunk shall leave a chunk of length zero or remove that chunk completely. However, sometimes we also need lists of events.
In this case the |
(Transform a, Transform b) => Transform (T a b) Source # | |