(Arne Babenhauserheide)
2017-03-21: Plot example functions for ypos1 *and* ypos2 Plot example functions for ypos1 *and* ypos2
diff --git a/examples/benchmark.w b/examples/benchmark.w
--- a/examples/benchmark.w
+++ b/examples/benchmark.w
@@ -71,13 +71,13 @@ define : benchmark-list-append
let : (N (list-ref x 0)) (m (list-ref x 1))
benchmark (append a b) :let ((a (iota N))(b (iota m)))
. param-list
- let : (steps 50)
+ let : (steps 100)
concatenate
list
- let : (param-list (zip (logiota steps 1 100) (logiota steps 1 0)))
+ ;; let : (param-list (zip (logiota steps 1 100) (logiota steps 1 0)))
+ ;; bench-append param-list
+ let : (param-list (zip (logiota steps 20 0) (logiota steps 1 100)))
bench-append param-list
- ;; let : (param-list (zip (logiota steps 100 0) (logiota steps 1 100)))
- ;; bench-append param-list
;; let : (param-list (zip (logiota steps 1 1000) (logiota steps 1 0)))
;; bench-append param-list
;; let : (param-list (zip (logiota steps 1 0) (logiota steps 1 1000)))
@@ -181,7 +181,7 @@ define : main args
let*
: bench : benchmark-list-append ;; benchmark results
;; fitting to cost estimates
- ensemble-member-count 128
+ ensemble-member-count 256
ensemble-member-plot-skip 4
y_0 : apply min : map car : map cdr bench
y_m : apply max : map car : map cdr bench
@@ -192,7 +192,7 @@ define : main args
P : make-covariance-matrix-with-offdiagonals-using-stds x^b-std
y⁰-pos : map car bench
y⁰ : append-map cdr bench
- y⁰-std : list-ref (sort y⁰ <) : round : / (length y⁰) 16 ; lower octile median
+ y⁰-std : list-ref (sort y⁰ <) : round : / (length y⁰) 32 ; lower octile median
R : make-covariance-matrix-with-offdiagonals-using-stds : list-ec (: i (length bench)) y⁰-std
optimized : EnSRF H x^b P y⁰ R y⁰-pos ensemble-member-count
x-opt : list-ref optimized 0
@@ -234,9 +234,9 @@ define : main args
;; format port "pl.errorbar(*zip(*sorted(zip(ypos2, yinit))), yerr=zip(*sorted(zip(ypos2, yinitstds)))[1], label='prior vs. m')\n"
format port "pl.errorbar(*zip(*sorted(zip(ypos2, yopt))), yerr=zip(*sorted(zip(ypos2, yoptstds)))[1], marker='+', mew=2, ms=10, linewidth=0.1, label='optimized vs. m')\n"
format port "eb=pl.errorbar(*zip(*sorted(zip(ypos2, y0))), yerr=yerr, alpha=0.6, marker='x', mew=2, ms=10, linewidth=0, label='measurements vs. m')\neb[-1][0].set_linewidth(1)\n"
- format port "pl.plot(sorted(ypos1), pl.log(sorted(ypos1))*(max(y0) / pl.log(max(ypos1))), label='log(N)')\n"
- format port "pl.plot(sorted(ypos1), pl.sqrt(sorted(ypos1))*(max(y0) / pl.sqrt(max(ypos1))), label='sqrt(N)')\n"
- format port "pl.plot(sorted(ypos1), pl.multiply(sorted(ypos1), max(y0) / max(ypos1)), label='N')\n"
+ format port "pl.plot(sorted(ypos1+ypos2), pl.log(sorted(ypos1+ypos2))*(max(y0) / pl.log(max(ypos1+ypos2))), label='log(x)')\n"
+ format port "pl.plot(sorted(ypos1+ypos2), pl.sqrt(sorted(ypos1+ypos2))*(max(y0) / pl.sqrt(max(ypos1+ypos2))), label='sqrt(x)')\n"
+ format port "pl.plot(sorted(ypos1+ypos2), pl.multiply(sorted(ypos1+ypos2), max(y0) / max(ypos1+ypos2)), label='x')\n"
list-ec (: step 0 (length x^steps) 4)
let : : members : list-ref x^steps (- (length x^steps) step 1)
list-ec (: member-idx 0 (length members) ensemble-member-plot-skip) ; reversed
@@ -249,7 +249,7 @@ scalarMap = mpl.cm.ScalarMappable(norm=c
let : (offset (/ (apply max (append y⁰ y-opt)) 2)) (spreading (/ (apply max (append y⁰ y-opt)) (- (apply max member) (apply min member))))
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 right')\n"
+ format port "pl.legend(loc='lower right')\n"
format port "pl.xlabel('position [arbitrary units]')\n"
format port "pl.ylabel('value [arbitrary units]')\n"
format port "pl.title('~A')\n" "Operation scaling behaviour"