elliptic-curve-0.2.1: benchmarks/EdwardsBenchmarks.hs
module EdwardsBenchmarks where
import Criterion.Main
import qualified Curve.Edwards.Curve1174 as Curve1174
import qualified Curve.Edwards.Curve41417 as Curve41417
import qualified Curve.Edwards.E222 as E222
import qualified Curve.Edwards.E382 as E382
import qualified Curve.Edwards.E521 as E521
import qualified Curve.Edwards.Ed448 as Ed448
import qualified Curve.Edwards.Ed3363 as Ed3363
import qualified Curve.Edwards.Ed25519 as Ed25519
import qualified Curve.Edwards.JubJub as JubJub
import GroupBenchmarks
benchmarkEdwards :: Benchmark
benchmarkEdwards = bgroup "Edwards"
[ benchmarkEdwards' "Curve1174" Curve1174.gA Curve1174.gP
, benchmarkEdwards' "Curve41417" Curve41417.gA Curve41417.gP
, benchmarkEdwards' "E222" E222.gA E222.gP
, benchmarkEdwards' "E382" E382.gA E382.gP
, benchmarkEdwards' "E521" E521.gA E521.gP
, benchmarkEdwards' "Ed448" Ed448.gA Ed448.gP
, benchmarkEdwards' "Ed3363" Ed3363.gA Ed3363.gP
, benchmarkEdwards' "Ed25519" Ed25519.gA Ed25519.gP
, benchmarkEdwards' "JubJub" JubJub.gA JubJub.gP
]
where
benchmarkEdwards' curve affine projective = bgroup curve
[ benchmark "Affine" affine
, benchmark "Projective" projective
]