aboutsummaryrefslogtreecommitdiff
path: root/bench/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'bench/Main.hs')
-rw-r--r--bench/Main.hs25
1 files changed, 20 insertions, 5 deletions
diff --git a/bench/Main.hs b/bench/Main.hs
index c1fc150..c4d2879 100644
--- a/bench/Main.hs
+++ b/bench/Main.hs
@@ -6,6 +6,7 @@ import qualified Numeric.LinearAlgebra as LA
import Test.Tasty.Bench
import Data.Array.Nested
+import Data.Array.Nested.Internal (mliftPrim2, arithPromoteRanked2)
main :: IO ()
@@ -13,6 +14,20 @@ main = defaultMain
[bgroup "Num"
[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(*) Double [1e6]" $
+ 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 -> runScalar (rsumOuter1 a))
+ (riota @Double n)
+ ]
+ ,bgroup "NumElt"
+ [bench "sum(+) Double [1e6]" $
+ let n = 1_000_000
in nf (\(a, b) -> runScalar (rsumOuter1 (a + b)))
(riota @Double n, riota n)
,bench "sum(*) Double [1e6]" $
@@ -28,16 +43,16 @@ main = defaultMain
[bench "sum(+) Double [1e6]" $
let n = 1_000_000
in nf (\(a, b) -> LA.sumElements (a + b))
- (LA.linspace @Double n (fromIntegral 0, fromIntegral (n - 1))
- ,LA.linspace @Double n (fromIntegral 0, fromIntegral (n - 1)))
+ (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 (fromIntegral 0, fromIntegral (n - 1))
- ,LA.linspace @Double n (fromIntegral 0, fromIntegral (n - 1)))
+ (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 -> LA.sumElements a)
- (LA.linspace @Double n (fromIntegral 0, fromIntegral (n - 1)))
+ (LA.linspace @Double n (0.0, fromIntegral (n - 1)))
]
]