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