packages feed

fast-combinatorics-0.1.0.4: bench/Bench.hs

module Main where

import           Criterion.Main
import           Numeric.Combinatorics
import           Numeric.Integer
import           Numeric.Pure.Combinatorics

main :: IO ()
main =
    defaultMain [ bgroup "factorial"
                      [ bench "factorial" $ nf factorial 12
                      , bench "hsFactorial" $ nf hsFactorial 12
                      ]
                , bgroup "combinations"
                      [ bench "choose" $ nf (13 `choose`) 4
                      , bench "hsChoose" $ nf (13 `hsChoose`) 4
                      ]
                , bgroup "primality check"
                      [ bench "isPrime" $ nf isPrime 2017
                      , bench "hsIsPrime" $ nf hsIsPrime 2017
                      ]
                , bgroup "integer exponentiation"
                      [ bench "integerExp" $ nf (integerExp 3) 7
                      , bench "^" $ nf ((3 :: Int) ^) (7 :: Int)
                      ]
                ]