diff options
author | Tom Smeding <t.j.smeding@uu.nl> | 2024-05-27 14:10:57 +0200 |
---|---|---|
committer | Tom Smeding <t.j.smeding@uu.nl> | 2024-05-27 14:10:57 +0200 |
commit | 9e5945120bbcfeff15ee7356398e06ab5ba25561 (patch) | |
tree | 9e9432d60b901776ebf552b501724e4c0a7b18f3 /bench/Main.hs | |
parent | e80b2593edc3d216905279ebcfa797593a1efbfc (diff) |
Fast (C) Floating ops
Diffstat (limited to 'bench/Main.hs')
-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) |