packages feed

jackpolynomials-1.3.0.0: benchmarks/Main.hs

module Main ( main ) where
import Math.Algebra.Hspray                      ( QSpray
                                                , ParametricQSpray
                                                , substituteParameters                                              
                                                )
import Math.Algebra.JackPol                     ( jackPol'
                                                )
import Math.Algebra.JackSymbolicPol             ( jackSymbolicPol' )
import Miniterion                               ( bench
                                                , bgroup
                                                , defaultMain
                                                , whnf )

nT :: Int
nT = 5

lambdaT :: [Int]
lambdaT = [4, 2, 2, 1]

alphaT :: Rational
alphaT = 2

jP :: (Int, [Int], Rational) -> QSpray 
jP (n, lambda, alpha) = jackPol' n lambda alpha 'J'

jSP :: (Int, [Int]) -> ParametricQSpray
jSP (n, lambda) = jackSymbolicPol' n lambda 'J'

jSPeval :: (Int, [Int], Rational) -> QSpray
jSPeval (n, lambda, alpha) = substituteParameters (jackSymbolicPol' n lambda 'J') [alpha]

main :: IO ()
main = 
  defaultMain
    [ bgroup "Jack"
      [ bench "jackPol with the given alpha"       $ 
          whnf jP (nT, lambdaT, alphaT)
      , bench "jackSymbolicPol"                    $ 
          whnf jSP (nT, lambdaT)
      , bench "jackSymbolicPol evaluated at alpha" $ 
          whnf jSPeval (nT, lambdaT, alphaT)
      ]
    ]