packages feed

vocoder-conduit-0.1.0.0: benchmarks/main.hs

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