diff options
author | Tom Smeding <tom@tomsmeding.com> | 2024-05-23 00:18:17 +0200 |
---|---|---|
committer | Tom Smeding <tom@tomsmeding.com> | 2024-05-23 00:18:17 +0200 |
commit | a0010622885dcb55a916bf3514c0e9040f6871e9 (patch) | |
tree | 9e10c18eaf5c873d50e1f88a3bf114179c151769 /bench | |
parent | 4b74d1b1f7c46a4b3907838bee11f669060d3a23 (diff) |
Fast numeric operations for Num
Diffstat (limited to 'bench')
-rw-r--r-- | bench/Main.hs | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/bench/Main.hs b/bench/Main.hs index d8582fe..c1fc150 100644 --- a/bench/Main.hs +++ b/bench/Main.hs @@ -2,6 +2,7 @@ {-# LANGUAGE TypeApplications #-} module Main where +import qualified Numeric.LinearAlgebra as LA import Test.Tasty.Bench import Data.Array.Nested @@ -16,5 +17,27 @@ main = defaultMain (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)]] + 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 -> runScalar (rsumOuter1 a)) + (riota @Double n) + ] + ,bgroup "hmatrix" + [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))) + ,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))) + ,bench "sum Double [1e6]" $ + let n = 1_000_000 + in nf (\a -> LA.sumElements a) + (LA.linspace @Double n (fromIntegral 0, fromIntegral (n - 1))) + ] + ] |