OrderedBits-0.0.0.1: bench/Benchmark.hs
module Main where
import Criterion.Main
import qualified Data.Vector.Unboxed as VU
import Data.Word (Word(..))
import Data.Bits.Ordered
main = defaultMain
[ bgroup "Int" [ bench "08" $ whnf (VU.sum . popCntSorted :: Int -> Int ) 8
, bench "16" $ whnf (VU.sum . popCntSorted :: Int -> Int ) 16
, bench "20" $ whnf (VU.sum . popCntSorted :: Int -> Int ) 20
-- , bench "24" $ whnf (VU.sum . popCntSorted :: Int -> Int ) 24
]
, bgroup "Word" [ bench "08" $ whnf (VU.sum . popCntSorted :: Int -> Word) 8
, bench "16" $ whnf (VU.sum . popCntSorted :: Int -> Word) 16
, bench "20" $ whnf (VU.sum . popCntSorted :: Int -> Word) 20
-- , bench "24" $ whnf (VU.sum . popCntSorted :: Int -> Word) 24
]
, bgroup "MemoInt" [ bench "08" $ whnf (VU.sum . popCntMemoInt :: Int -> Int ) 8
, bench "16" $ whnf (VU.sum . popCntMemoInt :: Int -> Int ) 16
, bench "20" $ whnf (VU.sum . popCntMemoInt :: Int -> Int ) 20
-- , bench "24" $ whnf (VU.sum . popCntMemoInt :: Int -> Int ) 24
]
, bgroup "MemoWord" [ bench "08" $ whnf (VU.sum . popCntMemoWord :: Int -> Word) 8
, bench "16" $ whnf (VU.sum . popCntMemoWord :: Int -> Word) 16
, bench "20" $ whnf (VU.sum . popCntMemoWord :: Int -> Word) 20
-- , bench "24" $ whnf (VU.sum . popCntMemoWord :: Int -> Word) 24
]
-- , bgroup "small ops" [ bench "
-- ]
]