packages feed

adp-multi-0.2.2: benchmarks/Benchmarks.hs

import Criterion.Main
import Criterion.Helpers

import ADP.Tests.Nussinov as Nuss
import ADP.Tests.NestedExample as Nuss2

import BioInf.GAPlike as Nuss3

-- 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.nested Nuss2.maxBasepairs) 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] ]