packages feed

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] ]