adp-multi-0.2.0: benchmarks/Benchmarks.hs
import Criterion.Main
import Criterion.Helpers
import ADP.Tests.Nussinov as Nuss
import ADP.Tests.NussinovExample as Nuss2
import BioInf.GAPlike as Nuss3
-- TODO try to adapt ADPfusion test so that the grammar/algebra is the same
-- run with -o report.html -u report.csv
main :: IO ()
main = defaultMain
[
bgroup "nussinov78 (Haskell-ADP)" (benchArray (Nuss.nussinov78' Nuss.pairmax) inputs),
bgroup "nussinov78 (adp-multi)" (benchArray (Nuss2.nussinov78 Nuss2.pairmax) inputs),
bgroup "nussinov78 (ADPfusion)" (benchArray (fst . Nuss3.nussinov78) inputs)
]
where
longInp = "ggcguaggcgccgugcuuuugcuccccgcgcgcuguuuuucucgcugacuuucagcgggcggaaaagccucggccugccgccuuccaccguucauucuag"
infiniteInp = cycle longInp
inputs = [ (show i, take i infiniteInp) | i <- [100,200..1000] ]