module Main (main) where import Math.Algebra.Hspray ( evalSymbolicSpray , Rational' , QSpray , QSpray' , SymbolicQSpray ) 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 alphaT' :: Rational' alphaT' = 2 jP :: (Int, [Int], Rational) -> QSpray jP (n, lambda, alpha) = jackPol' n lambda alpha 'J' jSP :: (Int, [Int]) -> SymbolicQSpray jSP (n, lambda) = jackSymbolicPol' n lambda 'J' jSPeval :: (Int, [Int], Rational') -> QSpray' jSPeval (n, lambda, alpha') = evalSymbolicSpray (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') ] ]