aboutsummaryrefslogtreecommitdiff
path: root/bench/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'bench/Main.hs')
-rw-r--r--bench/Main.hs17
1 files changed, 15 insertions, 2 deletions
diff --git a/bench/Main.hs b/bench/Main.hs
index a11f4e8..99c3f1d 100644
--- a/bench/Main.hs
+++ b/bench/Main.hs
@@ -4,11 +4,24 @@ module Main where
import Criterion
import Criterion.Main
+import qualified Numeric.AD as AD
+
import qualified Numeric.ADDual as ADD
import Numeric.ADDual.Examples
main :: IO ()
main = defaultMain
- [env (pure makeNeuralInput) $ \input ->
- bench "neural" $ nf (\inp -> ADD.gradient' @Double fneural inp 1.0) input]
+ [env (pure (makeNeuralInput 100)) $ \input ->
+ bgroup "neural-100"
+ [bench "dual" $ nf (\inp -> ADD.gradient' @Double fneural inp 1.0) input
+ ,bench "ad" $ nf (\inp -> AD.grad fneural inp) input]
+ ,env (pure (makeNeuralInput 500)) $ \input ->
+ bgroup "neural-500"
+ [bench "dual" $ nf (\inp -> ADD.gradient' @Double fneural inp 1.0) input
+ ,bench "ad" $ nf (\inp -> AD.grad fneural inp) input]
+ ,env (pure (makeNeuralInput 2000)) $ \input ->
+ bgroup "neural-2000"
+ [bench "dual" $ nf (\inp -> ADD.gradient' @Double fneural inp 1.0) input
+ ,bench "ad" $ nf (\inp -> AD.grad fneural inp) input]
+ ]