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 | |
| parent | e80b2593edc3d216905279ebcfa797593a1efbfc (diff) | |
Fast (C) Floating ops
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)  | 
