import Gauge.Main import qualified Data.Vector.Storable as V import Data.Conduit ((.|)) import qualified Data.Conduit as C import qualified Data.Conduit.Combinators as CC import Vocoder.Conduit.Frames benchFramesOfE :: Int -> Int -> Int -> Int -> Benchmarkable benchFramesOfE inputChunkSize chunkSize hopSize size0 = flip whnf size0 $ \size -> C.runConduitPure $ CC.enumFromTo 1 size .| CC.map (V.replicate inputChunkSize) .| framesOfE chunkSize hopSize .| CC.sumE benchSumFramesE :: Int -> Int -> Int -> Int -> Benchmarkable benchSumFramesE inputChunkSize chunkSize hopSize size0 = flip whnf size0 $ \size -> C.runConduitPure $ CC.enumFromTo 1 size .| CC.map (V.replicate inputChunkSize) .| sumFramesE chunkSize hopSize .| CC.sumE main :: IO () main = defaultMain [ bench "framesOfE" $ benchFramesOfE 100 512 21 size0 , bench "sumFramesE" $ benchSumFramesE 512 100 21 size0 ] where size0 = 1000 :: Int