-- | Replicate operations on arrays. module Data.Repa.Array.Internals.Operator.Replicate ( replicates ) where import Data.Repa.Array.Internals.Layout as A import Data.Repa.Array.Internals.Target as A import Data.Repa.Array.Internals.Bulk as A import Data.Repa.Eval.Stream as A import Data.Repa.Stream as S #include "repa-array.h" -- | Segmented replicate. replicates :: (BulkI lSrc (Int, a), TargetI lDst a) => Name lDst -> Array lSrc (Int, a) -> Array lDst a replicates nDst arr = A.unstreamToArray nDst $ S.replicatesS $ A.streamOfArray arr {-# INLINE_ARRAY replicates #-}