module Synthesizer.ChunkySize where import qualified Synthesizer.Generic.Signal as SigG import qualified Number.NonNegativeChunky as Chunky import qualified Numeric.NonNegative.Chunky as Chunky98 import qualified Data.StorableVector.Lazy as SigSt import qualified Data.StorableVector.Lazy.Pattern as SigStV import qualified Data.List as List type T = Chunky.T SigG.LazySize fromStorableVectorSize :: SigStV.LazySize -> T fromStorableVectorSize :: LazySize -> T fromStorableVectorSize = [LazySize] -> T forall a. C a => [a] -> T a Chunky.fromChunks ([LazySize] -> T) -> (LazySize -> [LazySize]) -> LazySize -> T forall b c a. (b -> c) -> (a -> b) -> a -> c . (ChunkSize -> LazySize) -> [ChunkSize] -> [LazySize] forall a b. (a -> b) -> [a] -> [b] List.map (\(SigSt.ChunkSize Int size) -> (Int -> LazySize SigG.LazySize Int size)) ([ChunkSize] -> [LazySize]) -> (LazySize -> [ChunkSize]) -> LazySize -> [LazySize] forall b c a. (b -> c) -> (a -> b) -> a -> c . LazySize -> [ChunkSize] forall a. T a -> [a] Chunky98.toChunks toStorableVectorSize :: T -> SigStV.LazySize toStorableVectorSize :: T -> LazySize toStorableVectorSize = [ChunkSize] -> LazySize forall a. C a => [a] -> T a Chunky98.fromChunks ([ChunkSize] -> LazySize) -> (T -> [ChunkSize]) -> T -> LazySize forall b c a. (b -> c) -> (a -> b) -> a -> c . (LazySize -> ChunkSize) -> [LazySize] -> [ChunkSize] forall a b. (a -> b) -> [a] -> [b] List.map (\(SigG.LazySize Int size) -> (Int -> ChunkSize SigSt.ChunkSize Int size)) ([LazySize] -> [ChunkSize]) -> (T -> [LazySize]) -> T -> [ChunkSize] forall b c a. (b -> c) -> (a -> b) -> a -> c . T -> [LazySize] forall a. C a => T a -> [a] Chunky.toChunks toNullList :: T -> [()] toNullList :: T -> [()] toNullList = (LazySize -> [()]) -> [LazySize] -> [()] forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b] List.concatMap (\(SigG.LazySize Int n) -> Int -> () -> [()] forall a. Int -> a -> [a] List.replicate Int n ()) ([LazySize] -> [()]) -> (T -> [LazySize]) -> T -> [()] forall b c a. (b -> c) -> (a -> b) -> a -> c . T -> [LazySize] forall a. C a => T a -> [a] Chunky.toChunks