(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"