(Arne Babenhauserheide)
2017-03-30: add titles, fix ax labels add titles, fix ax labels
diff --git a/examples/benchmark.w b/examples/benchmark.w
--- a/examples/benchmark.w
+++ b/examples/benchmark.w
@@ -268,14 +268,14 @@ define : flatten li
;; TODO: add filename and title and fix the units
define* : plot-benchmark-result bench H #:key filename title
let*
- : ensemble-member-count 128
+ : ensemble-member-count 64
ensemble-member-plot-skip 16 ;; must not be zero!
y_0 : apply min : map car : map cdr bench
- y_m : apply max : map car : map cdr bench
+ y_m : * 0.25 : apply max : map car : map cdr bench
nb : apply max : interleave (map car (map car bench)) (map car (map cdr (map car bench)))
;; "const" "log(N)" "sqrt(N)" "N" "N^2" "N^3" "log(m)" "sqrt(m)" "m" "m^2" "m^3" "log(N + m)" "N log(m)" "m log(N)" "N m" "N^2 m" "m^2 N"
x^b : list y_0 (/ y_m (log nb)) (/ y_m (sqrt nb)) (/ y_m nb) (/ y_m nb nb) (/ y_m nb nb nb) (/ y_m (log nb)) (/ y_m (sqrt nb)) (/ y_m nb) (/ y_m nb nb) (/ y_m nb nb nb) (/ y_m nb nb) (/ y_m nb nb) (/ y_m nb nb nb) (/ y_m nb nb nb) (/ y_m nb nb nb nb) (/ y_m nb nb nb nb) ; inital guess: constant starting at the first result
- x^b-std : list-ec (: i x^b) i ; inital guess: 100% uncertainty
+ x^b-std : list-ec (: i x^b) (* 2 i) ; inital guess: 200% uncertainty
P : make-covariance-matrix-with-offdiagonals-using-stds x^b-std
y⁰-pos : map car bench
y⁰ : append-map cdr bench
@@ -304,6 +304,9 @@ define* : plot-benchmark-result bench H
y^b-stds : list-ec (: i y^b-deviations) : apply standard-deviation-from-deviations i
;; print-fit x-std
+ when title
+ display title
+ newline
print-fit x-opt x-std
;; TODO: minimize y-mismatch * y-uncertainty
format #t "Model standard deviation (uncertainty): ~,4e\n" y-std
@@ -341,13 +344,13 @@ scalarMap = mpl.cm.ScalarMappable(norm=c
format port "pl.plot(~A, ~A, marker='.', color=scalarMap.to_rgba(~A), linewidth=0, label='', alpha=0.6, zorder=-1)\n"
. (/ step 1) (+ offset (* spreading (list-ref member param-idx))) param-idx
format port "pl.legend(loc='upper left', fancybox=True, framealpha=0.5)\n"
- format port "pl.xlabel('position [arbitrary units]')\n"
- format port "pl.ylabel('value [arbitrary units]')\n"
+ format port "pl.xlabel('position / arbitrary units')\n"
+ format port "pl.ylabel('time / s')\n"
format port "pl.title('''~A''')\n" : or title "Operation scaling behaviour"
format port "pl.xscale('log')\n"
;; format port "pl.yscale('log')\n"
if filename
- format port "pl.savefig('~A')\n" filename
+ format port "pl.savefig('~A', bbox_inches='tight')\n" filename
format port "pl.show()\n"
format port "exit()\n"
close-pipe port
@@ -356,7 +359,7 @@ scalarMap = mpl.cm.ScalarMappable(norm=c
define : main args
let*
: H : lambda (x pos) (H-N-m x pos #:const #t #:ON #t #:ONlogN #t #:OlogN #:Ologm #:Om #:Omlogm)
- steps 5
+ steps 10
pbr plot-benchmark-result
let lp
: N-start '(1 1 1 100)
@@ -374,36 +377,46 @@ define : main args
dm : car m-step
param-list : zip (logiota steps N dN) (logiota steps m dm)
when : equal? dm 0 ;; only over N
- pbr (bench-car param-list) H #:filename
- format #f "/tmp/benchmark-car-~a-~a.pdf"
+ pbr (bench-car param-list) H
+ . #:title "car (iota N)"
+ . #:filename
+ format #f "/tmp/benchmark-car-~a-~a.png"
if (equal? dN 0) N "N"
. m
- pbr (bench-cdr param-list) H #:filename
- format #f "/tmp/benchmark-cdr-~a-~a.pdf"
+ pbr (bench-cdr param-list)
+ . #:title "cdr (iota N)"
+ . #:filename
+ format #f "/tmp/benchmark-cdr-~a-~a.png"
if (equal? dN 0) N "N"
. m
- pbr (bench-append param-list) H #:filename
- format #f "/tmp/benchmark-list-append-~a-~a.pdf"
+ pbr (bench-append param-list) H
+ . #:title "append (iota N) (iota m)"
+ . #:filename
+ format #f "/tmp/benchmark-list-append-~a-~a.png"
if (equal? dN 0) N "N"
if (equal? dm 0) m "m"
- pbr (bench-append-string param-list) H #:filename
- format #f "/tmp/benchmark-string-append-~a-~a.pdf"
+ pbr (bench-append-string param-list) H
+ . #:title "string-append (make-string N) (make-string m)"
+ . #:filename
+ format #f "/tmp/benchmark-string-append-~a-~a.png"
if (equal? dN 0) N "N"
if (equal? dm 0) m "m"
- pbr (bench-append-vector param-list) H #:filename
- format #f "/tmp/benchmark-vector-append-~a-~a.pdf"
+ pbr (bench-append-vector param-list) H
+ . #:title "vector-append (make-vector N 1) (make-vector m 1)"
+ . #:filename
+ format #f "/tmp/benchmark-vector-append-~a-~a.png"
if (equal? dN 0) N "N"
if (equal? dm 0) m "m"
pbr (bench-assoc param-list) H
. #:title "assoc m '((N . N) (N-1 . N-1) ... )"
. #:filename
- format #f "/tmp/benchmark-assoc-~a-~a.pdf"
+ format #f "/tmp/benchmark-assoc-~a-~a.png"
if (equal? dN 0) N "N"
if (equal? dm 0) m "m"
pbr (bench-cons param-list) H
. #:title "cons m (iota N)"
. #:filename
- format #f "/tmp/benchmark-cons-~a-~a.pdf"
+ format #f "/tmp/benchmark-cons-~a-~a.png"
if (equal? dN 0) N "N"
if (equal? dm 0) m "m"
;; interesting functions: