NoSlow-0.1: NoSlow/Main.hs
{-# LANGUAGE TemplateHaskell, CPP #-}
module Main where
import NoSlow.Main.TH
import NoSlow.Main.Tree
import NoSlow.Main.Util ( (>++<) )
import Criterion.Main
import Criterion.Config
import qualified NoSlow.Micro.List
import qualified NoSlow.Micro.List.Double
#ifdef USE_DPH_PRIM_SEQ
import qualified NoSlow.Micro.DPH.Prim.Seq
import qualified NoSlow.Micro.DPH.Prim.Seq.Double
#endif
#ifdef USE_VECTOR
import qualified NoSlow.Micro.Vector.Primitive
import qualified NoSlow.Micro.Vector.Primitive.Double
import qualified NoSlow.Micro.Vector.Storable
import qualified NoSlow.Micro.Vector.Storable.Double
import qualified NoSlow.Micro.Vector.Boxed
import qualified NoSlow.Micro.Vector.Boxed.Double
#endif
#ifdef USE_UVECTOR
import qualified NoSlow.Micro.Uvector
import qualified NoSlow.Micro.Uvector.Double
#endif
#ifdef USE_STORABLEVECTOR
import qualified NoSlow.Micro.StorableVector
import qualified NoSlow.Micro.StorableVector.Double
#endif
all_kernels = $(benchtrees Poly [t|Double|] kernel_tree)
>++< $(benchtrees Mono [t|Double|] kernel_tree)
main = defaultMainWith (defaultConfig { cfgPerformGC = ljust True })
(all_kernels 10000)