raaz-0.3.0: benchmarks/Main.hs
-- | This module benchmarks all block function and shows the
import Control.Monad
import Prelude
import System.IO
import Text.PrettyPrint
import Benchmark.Types
import qualified Benchmark.Blake2b.CPortable as Blake2bCP
import qualified Benchmark.Blake2b.CHandWritten as Blake2bCHW
import qualified Benchmark.Blake2s.CHandWritten as Blake2sCHW
import qualified Benchmark.ChaCha20.CPortable as ChaCha20CP
import qualified Benchmark.ChaCha20.CHandWritten as ChaCha20CHW
import qualified Benchmark.Poly1305.CPortable as Poly1305CP
import qualified Benchmark.Sha256.CPortable as Sha256CP
import qualified Benchmark.Sha256.CHandWritten as Sha256CHW
import qualified Benchmark.Sha512.CPortable as Sha512CP
import qualified Benchmark.Sha512.CHandWritten as Sha512CHW
import qualified Benchmark.CSPRG.CPortable as CSPRGCP
main :: IO ()
main = do
hSetEncoding stdout utf8
putStrLn $ render header
mapM_ printBench [ Blake2bCP.bench
, Blake2bCHW.bench
, Blake2sCHW.bench
, Poly1305CP.bench
, CSPRGCP.bench
, ChaCha20CP.bench
, ChaCha20CHW.bench
, Sha256CP.bench
, Sha256CHW.bench
, Sha512CP.bench
, Sha512CHW.bench
]
where printBench = runRaazBench >=> pure . render >=> putStrLn