diff options
Diffstat (limited to 'bench')
| -rw-r--r-- | bench/Main.hs | 27 | 
1 files changed, 26 insertions, 1 deletions
| diff --git a/bench/Main.hs b/bench/Main.hs index 8f3b670..41eb3b3 100644 --- a/bench/Main.hs +++ b/bench/Main.hs @@ -6,7 +6,7 @@ import qualified Numeric.LinearAlgebra as LA  import Test.Tasty.Bench  import Data.Array.Nested -import Data.Array.Nested.Internal (mliftPrim2, arithPromoteRanked2) +import Data.Array.Nested.Internal (mliftPrim, mliftPrim2, arithPromoteRanked, arithPromoteRanked2)  main :: IO () @@ -24,6 +24,14 @@ main = defaultMain        let n = 1_000_000        in nf (\(a, b) -> runScalar (rsumOuter1 (arithPromoteRanked2 (mliftPrim2 (/)) a b)))              (riota @Double n, riota n) +    ,bench "sum(**) Double [1e6]" $ +      let n = 1_000_000 +      in nf (\(a, b) -> runScalar (rsumOuter1 (arithPromoteRanked2 (mliftPrim2 (**)) a b))) +            (riota @Double n, riota n) +    ,bench "sum(sin) Double [1e6]" $ +      let n = 1_000_000 +      in nf (\a -> runScalar (rsumOuter1 (arithPromoteRanked (mliftPrim sin) a))) +            (riota @Double n)      ,bench "sum Double [1e6]" $        let n = 1_000_000        in nf (\a -> runScalar (rsumOuter1 a)) @@ -42,6 +50,14 @@ main = defaultMain        let n = 1_000_000        in nf (\(a, b) -> runScalar (rsumOuter1 (a / b)))              (riota @Double n, riota n) +    ,bench "sum(**) Double [1e6]" $ +      let n = 1_000_000 +      in nf (\(a, b) -> runScalar (rsumOuter1 (a ** b))) +            (riota @Double n, riota n) +    ,bench "sum(sin) Double [1e6]" $ +      let n = 1_000_000 +      in nf (\a -> runScalar (rsumOuter1 (sin a))) +            (riota @Double n)      ,bench "sum Double [1e6]" $        let n = 1_000_000        in nf (\a -> runScalar (rsumOuter1 a)) @@ -63,6 +79,15 @@ main = defaultMain        in nf (\(a, b) -> LA.sumElements (a / b))              (LA.linspace @Double n (0.0, fromIntegral (n - 1))              ,LA.linspace @Double n (0.0, fromIntegral (n - 1))) +    ,bench "sum(**) Double [1e6]" $ +      let n = 1_000_000 +      in nf (\(a, b) -> LA.sumElements (a ** b)) +            (LA.linspace @Double n (0.0, fromIntegral (n - 1)) +            ,LA.linspace @Double n (0.0, fromIntegral (n - 1))) +    ,bench "sum(sin) Double [1e6]" $ +      let n = 1_000_000 +      in nf (\a -> LA.sumElements (sin a)) +            (LA.linspace @Double n (0.0, fromIntegral (n - 1)))      ,bench "sum Double [1e6]" $        let n = 1_000_000        in nf (\a -> LA.sumElements a) | 
