{-# LANGUAGE BangPatterns #-}
-- |
-- Copyright : (C) 2013 Parallel Scientific Labs, LLC.
-- License : GPLv2
--
-- Burst prototype based on the work of Jonathan Jouty.
--
module Main
where
import Math.Bursts
import Criterion.Main
import Criterion.Measurement
import Control.Monad ( void )
import Control.Exception ( evaluate )
import Text.Printf
main = do
defaultMain
[ bgroup "burst"
[ bench "depth 18" $ nf go 18
]
]
let samples = 20
d <- time_ $ void . evaluate $ go samples
printf "Samples per second: %14.4f\n" $ (fromIntegral samples)/d
printf "Nanoseconds per sample: %.4f\n" $ d/(fromIntegral samples)*1e9
where
go n = sbtBurstAnalysisMany ([0..n]) w
w :: Window Int
w = initialWindow 4096 10 100 defaultAggregate