wisp
 
(Arne Babenhauserheide)
2017-04-12: operation benchmarks

operation benchmarks

diff --git a/examples/benchmark.w b/examples/benchmark.w
--- a/examples/benchmark.w
+++ b/examples/benchmark.w
@@ -126,6 +126,7 @@ define : logiota steps start stepsize
 ;; operation benchmarks
 ;; - TODO: or #f #t
 ;; - TODO: and #t #f
+;; - TODO: math
 
 ;; List benchmarks:
 ;; - list-copy (py-copy)
@@ -326,6 +327,22 @@ define : bench-assoc param-list
   zip param-list : map f param-list
 
 
+;; opertations
+define : bench-operation-+ param-list
+  . "Test (assoc a b) with lists of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (+ a b) :let ((a N)(b m)(c 1)(d 2))
+  zip param-list : map f param-list
+
+define : bench-operation-+++ param-list
+  . "Test (assoc a b) with lists of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (+ (+ (+ a b) c) d) :let ((a N)(b m)(c 50)(d 100))
+  zip param-list : map f param-list
+
+
 ;; prepare a multi-function fit
 import 
     only : examples ensemble-estimation
@@ -555,6 +572,12 @@ define : main args
                       . identifier
                       if (equal? dN 0) N "N"
                       if (equal? dm 0) m "m"
+              pbr (bench-operation-+ param-list) H
+                  . #:title : title "+ N m"
+                  . #:filename : filename "operation-plus"
+              pbr (bench-operation-+++ param-list) H
+                  . #:title : title "+ (+ (+ N m) 50) 100"
+                  . #:filename : filename "operation-plus3"
               pbr (bench-ref param-list) H-const
                   . #:title : title "list-ref (iota (max m N)) (- m 1)"
                   . #:filename : filename "list-ref"