packages feed

pairing-1.0.0: bench/Bench/Hash.hs

module Bench.Hash where

import Protolude

import Criterion.Main
import Data.Pairing
import qualified Data.Pairing.BLS12381 as BLS12381
import qualified Data.Pairing.BN254 as BN254
import qualified Data.Pairing.BN254A as BN254A
import qualified Data.Pairing.BN254B as BN254B
import qualified Data.Pairing.BN254C as BN254C
import qualified Data.Pairing.BN254D as BN254D
import qualified Data.Pairing.BN462 as BN462
import Data.Pairing.Hash

benchHash :: Benchmark
benchHash = bgroup "Shallue-van de Woestijne encoding hashing"
  [ bench "BN254" $
    nfIO (swEncBN test_hash :: IO (Maybe (G1 BN254.BN254)))
  , bench "BN254A" $
    nfIO (swEncBN test_hash :: IO (Maybe (G1 BN254A.BN254A)))
  , bench "BN254B" $
    nfIO (swEncBN test_hash :: IO (Maybe (G1 BN254B.BN254B)))
  , bench "BN254C" $
    nfIO (swEncBN test_hash :: IO (Maybe (G1 BN254C.BN254C)))
  , bench "BN254D" $
    nfIO (swEncBN test_hash :: IO (Maybe (G1 BN254D.BN254D)))
  , bench "BN462" $
    nfIO (swEncBN test_hash :: IO (Maybe (G1 BN462.BN462)))
  , bench "BLS12381" $
    nfIO (swEncBN test_hash :: IO (Maybe (G1 BLS12381.BLS12381)))
  ]

test_hash :: ByteString
test_hash = "TyqIPUBYojDVOnDPacfMGrGOzpaQDWD3KZCpqzLhpE4A3kRUCQFUx040Ok139J8WDVV2C99Sfge3G20Q8MEgu23giWmqRxqOc8pH"