packages feed

synthesizer-llvm-0.3: src/Synthesizer/LLVM/SerialVector.hs

{- |
A special vector type that represents a time-sequence of samples.
This way we can distinguish safely between LLVM vectors
used for parallel signals and pipelines and
those used for chunky processing of scalar signals.
For the chunky processing this data type allows us
to derive the factor from the type
that time constants have to be multiplied with.
-}
module Synthesizer.LLVM.SerialVector where

import qualified Data.TypeLevel.Num.Sets as TypeSet
import qualified LLVM.Core as LLVM


replicate :: (TypeSet.Pos n) => a -> LLVM.Vector n a
replicate x = LLVM.vector [x]