pairing-1.0.0: bench/Bench/Pairing.hs
module Bench.Pairing where
import Protolude
import Criterion.Main
import Data.Curve
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
benchPairing :: Benchmark
benchPairing = bgroup "Optimal ate pairing"
[ bench "BLS12381" $
nf (uncurry pairing) bls12381
, bench "BN254" $
nf (uncurry pairing) bn254
, bench "BN254A" $
nf (uncurry pairing) bn254a
, bench "BN254B" $
nf (uncurry pairing) bn254b
, bench "BN254C" $
nf (uncurry pairing) bn254c
, bench "BN254D" $
nf (uncurry pairing) bn254d
, bench "BN462" $
nf (uncurry pairing) bn462
]
bls12381 :: (G1 BLS12381.BLS12381, G2 BLS12381.BLS12381)
bls12381 = (gen, gen)
bn254 :: (G1 BN254.BN254, G2 BN254.BN254)
bn254 = (gen, gen)
bn254a :: (G1 BN254A.BN254A, G2 BN254A.BN254A)
bn254a = (gen, gen)
bn254b :: (G1 BN254B.BN254B, G2 BN254B.BN254B)
bn254b = (gen, gen)
bn254c :: (G1 BN254C.BN254C, G2 BN254C.BN254C)
bn254c = (gen, gen)
bn254d :: (G1 BN254D.BN254D, G2 BN254D.BN254D)
bn254d = (gen, gen)
bn462 :: (G1 BN462.BN462, G2 BN462.BN462)
bn462 = (gen, gen)