Index: doc/theses/mike_brooks_MMath/plots/ListCommon.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/ListCommon.py	(revision e35ecd0d30acc83cf5a77153bc63d9d21802b580)
+++ doc/theses/mike_brooks_MMath/plots/ListCommon.py	(revision 0f9c67bf2e86875a3e1a3837197710b366b81419)
@@ -3,4 +3,5 @@
 import math
 import os
+import sys
 from subprocess import Popen, PIPE
 from scipy.stats import gmean
@@ -265,4 +266,20 @@
     return metadata
 
+def printSingleSummaryFrom( measure, dfgrouped, *,
+        file = sys.stdout,
+        index = True, 
+        end = '\n' ) :
+    aggregated = dfgrouped[measure].agg([
+        ("gmean", gmean), "std", "min", "max", "count",
+        lambda x: x.quantile(0.025),
+        lambda x: x.quantile(0.16),
+        lambda x: x.quantile(0.5),
+        lambda x: x.quantile(0.84),
+        lambda x: x.quantile(0.975)
+    ])
+    text = aggregated.to_csv(header=False, index=index, sep='\t')
+    print(text, file=file, end=end)
+
+
 swiftSweetspot = (lambda x: x > 16 and x < 150)
 # swiftSweetspot = (lambda x: x > 4 and x < 32)
@@ -303,16 +320,6 @@
 
         grouped = timings.groupby(['op_num', 'fx_num', 'fx'])
-
-        aggregated = grouped[measure].agg(
-            ["mean", "std", "min", "max", "count",
-            lambda x: x.quantile(0.025),
-            lambda x: x.quantile(0.16),
-            lambda x: x.quantile(0.5),
-            lambda x: x.quantile(0.84),
-            lambda x: x.quantile(0.975)]
-        )
-
-        text = aggregated.to_csv(header=False, index=True, sep='\t')
-        print(text, end='')
+        printSingleSummaryFrom( measure, grouped, end ='' )
+
 
 def printSingleDetail(
@@ -426,5 +433,7 @@
     lateFilter = {}, # exclude from output
     drillOn = ['fx'],
-    marginalizeOn = None ):  # None means match drill-on
+    marginalizeOn = None,  # None means match drill-on
+    sumFile = sys.stdout,
+    detFile = sys.stdout ):
 
     if marginalizeOn == None:
@@ -478,4 +487,14 @@
 #       print(mgroup, file=sys.stderr)
 
+        dkey_str = list( map( str, dkey ) )
+        header = str.join(', ', dkey_str)
+
+        dgroup_sole = dgroup.groupby((lambda _: 0))
+        print(f'"{header}"', file=sumFile)
+        printSingleSummaryFrom(
+            c_measure, dgroup_sole, file=sumFile, index=False )
+        print(file=sumFile)
+        print(file=sumFile)
+
         histo_raw = dgroup[ c_measureBkt ].value_counts()
         for b in buckets:
@@ -490,11 +509,9 @@
         histo.insert(y_lo_col_loc + 1, "y_hi", histo["y_lo"].apply(topValOfBucketBotVal))
 
-        dkey_str = list( map( str, dkey ) )
-        header = str.join(', ', dkey_str)
-        print(f'"{header}"')
+        print(f'"{header}"', file=detFile)
         text = histo.to_csv(header=False, index=False, sep='\t')
-        print(text)
-        print()
-        print()
+        print(text, file=detFile)
+        print(file=detFile)
+        print(file=detFile)
 
         # print(f'"{header}" FULL')
Index: doc/theses/mike_brooks_MMath/plots/list-1ord.d
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-1ord.d	(revision e35ecd0d30acc83cf5a77153bc63d9d21802b580)
+++ doc/theses/mike_brooks_MMath/plots/list-1ord.d	(revision 0f9c67bf2e86875a3e1a3837197710b366b81419)
@@ -1,2 +1,2 @@
-plots/list-1ord.gp.INPUTS: build/plot-list-1ord.dat | build
+plots/list-1ord.gp.INPUTS: build/plot-list-1ord.sum.dat build/plot-list-1ord.det.dat | build
 plots/list-1ord.py.INPUTS: benchmarks/list/results-swift-general.csv
Index: doc/theses/mike_brooks_MMath/plots/list-1ord.gp
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-1ord.gp	(revision e35ecd0d30acc83cf5a77153bc63d9d21802b580)
+++ doc/theses/mike_brooks_MMath/plots/list-1ord.gp	(revision 0f9c67bf2e86875a3e1a3837197710b366b81419)
@@ -15,21 +15,17 @@
 set grid
 set nokey
-set logscale y 2
-set yrange [0.4:3.0];
-set ytics ( \
-   "+40%%" 1.666666667, \
-   "+30%%" 1.428571429, \
-   "+20%%" 1.25, \
-   "+10%%" 1.111111111, \
-   "0" 1, \
-   "-20%%" 0.833333333, \
-   "-40%%" 0.714285714, \
-   "-60%%" 0.625, \
-   "-80%%" 0.555555556, \
-   "-100%%" 0.5, \
-   "-130%%" 0.434782609, \
-   "-160%%" 0.384615385, \
-   "-200%%" 0.333333333 \
-)
+
+set ylabel "Duration (relative)" offset -1.0,0
+set logscale y (2**0.2)
+set yrange [0.38:2.5];
+set format y "%.1f {/Symbol \264}"
+set ytics (0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.4)
+
+# Draw fake x axis at y=1.0; use vertical-only bounding 'H'
+unset border
+set arrow from graph 0, first 1 to graph 1, first 1 nohead lt -1 lw 2
+set arrow 100 from graph 0, graph 0 to graph 0, graph 1 nohead lw 1 front
+set arrow 101 from graph 1, graph 0 to graph 1, graph 1 nohead lw 1 front
+
 set xrange [-5.5:17.5];
 set xlabel "Machine, Size Zone;                           Operation;                                     Framework;       \nPrevalence                                   Prevalence                                     Prevalence"
@@ -57,9 +53,5 @@
    "LQ: tailq" 15, \
    "LQ: list"  16, \
-) rotate by -45
-
-set ylabel "Duration (relative)" offset -1.0,0
-set errorbars 2.0
-set pointintervalbox 0
+) scale 0 rotate by -45
 
 barHtScale_phys = 0.05
@@ -67,6 +59,9 @@
 barHtScale_fx = 0.05
 
+set errorbars 0 linewidth 4
+set pointintervalbox 0
 
-plot INDIR."/plot-list-1ord.dat" \
+
+plot INDIR."/plot-list-1ord.det.dat" \
        i  3 using (0):(0):(-1 - 1):(-1 - 1 +       barHtScale_phys * $3):1:2 title columnheader(1) with boxxyerror fc rgb "black"        fs transparent solid 0.15 noborder, \
     '' i  2 using (0):(0):(-1 - 2):(-1 - 2 +       barHtScale_phys * $3):1:2 title columnheader(1) with boxxyerror fc rgb "black" fs transparent solid 0.15 noborder, \
@@ -110,4 +105,27 @@
     '' i 19 using (1 + 13 +       barHtScale_fx * $3):2 notitle with steps lc rgb "dark-orange"  lw 0.3, \
     '' i 18 using (1 + 14 +       barHtScale_fx * $3):2 notitle with steps lc rgb "magenta"      lw 0.3, \
-    '' i 17 using (1 + 15 + 3.5 * barHtScale_fx * $3):2 notitle with steps lc rgb "purple"       lw 0.3
-
+    '' i 17 using (1 + 15 + 3.5 * barHtScale_fx * $3):2 notitle with steps lc rgb "purple"       lw 0.3, \
+\
+   INDIR."/plot-list-1ord.sum.dat" \
+       i  3 using (-1 - 1):1:(-1 - 1):(-1 - 1 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i  2 using (-1 - 2):1:(-1 - 2):(-1 - 2 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i  1 using (-1 - 3):1:(-1 - 3):(-1 - 3 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i  0 using (-1 - 4):1:(-1 - 4):(-1 - 4 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+\
+    '' i 10 using (     0):1:(     0):(     0 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i 11 using (     1):1:(     1):(     1 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i 12 using (     2):1:(     2):(     2 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i 13 using (     3):1:(     3):(     3 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i 14 using (     4):1:(     4):(     4 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i 15 using (     5):1:(     5):(     5 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i  4 using (     6):1:(     6):(     6 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i  5 using (     7):1:(     7):(     7 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i  6 using (     8):1:(     8):(     8 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i  7 using (     9):1:(     9):(     9 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i  8 using (    10):1:(    10):(    10 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+    '' i  9 using (    11):1:(    11):(    11 + .8) notitle with xerrorbars lc rgb "black"       pt  5  ps 0.8, \
+\
+    '' i 16 using (1 + 12):1:(1 + 12):(1 + 12 + .8) notitle with xerrorbars lc rgb "blue"        pt  7  ps 1.0, \
+    '' i 19 using (1 + 13):1:(1 + 13):(1 + 13 + .8) notitle with xerrorbars lc rgb "dark-orange" pt  9  ps 1.2, \
+    '' i 18 using (1 + 14):1:(1 + 14):(1 + 14 + .8) notitle with xerrorbars lc rgb "magenta"     pt  11 ps 1.2, \
+    '' i 17 using (1 + 15):1:(1 + 15):(1 + 15 + .8) notitle with xerrorbars lc rgb "dark-violet" pt  13 ps 1.4
Index: doc/theses/mike_brooks_MMath/plots/list-1ord.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-1ord.py	(revision e35ecd0d30acc83cf5a77153bc63d9d21802b580)
+++ doc/theses/mike_brooks_MMath/plots/list-1ord.py	(revision 0f9c67bf2e86875a3e1a3837197710b366b81419)
@@ -6,4 +6,7 @@
 sys.path.insert(0, os.path.dirname(__file__))
 from ListCommon import *
+
+sumFile = open( sys.argv[1], 'w' )
+detFile = open( sys.argv[2], 'w' )
 
 physicals = ['machine', 'SizeZone']
@@ -21,5 +24,7 @@
     tgtPolarity = 'all',
     tgtAccessor = 'all',
-    drillOn=physicals )
+    drillOn=physicals,
+    sumFile = sumFile,
+    detFile = detFile )
 
 printHistos(
@@ -27,5 +32,7 @@
     tgtPolarity = 'all',
     tgtAccessor = 'all',
-    drillOn=ops )
+    drillOn=ops,
+    sumFile = sumFile,
+    detFile = detFile )
 
 printHistos(
@@ -33,3 +40,5 @@
     tgtPolarity = 'all',
     tgtAccessor = 'all',
-    drillOn=fx )
+    drillOn=fx,
+    sumFile = sumFile,
+    detFile = detFile )
Index: doc/theses/mike_brooks_MMath/plots/list-2ord.d
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-2ord.d	(revision e35ecd0d30acc83cf5a77153bc63d9d21802b580)
+++ doc/theses/mike_brooks_MMath/plots/list-2ord.d	(revision 0f9c67bf2e86875a3e1a3837197710b366b81419)
@@ -1,2 +1,2 @@
-plots/list-2ord.gp.INPUTS: build/plot-list-2ord.dat | build
+plots/list-2ord.gp.INPUTS: build/plot-list-2ord.sum.dat build/plot-list-2ord.det.dat | build
 plots/list-2ord.py.INPUTS: benchmarks/list/results-swift-general.csv
Index: doc/theses/mike_brooks_MMath/plots/list-2ord.gp
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-2ord.gp	(revision e35ecd0d30acc83cf5a77153bc63d9d21802b580)
+++ doc/theses/mike_brooks_MMath/plots/list-2ord.gp	(revision 0f9c67bf2e86875a3e1a3837197710b366b81419)
@@ -12,12 +12,11 @@
 set lmargin 10
 set bmargin 5
-set tmargin 2
+set tmargin 3.5
 
 set grid
-set nokey
 
 set logscale y (2**0.2)
-set yrange [0.57:1.65];
-set format y "%.2f {/Symbol \264}"
+set yrange [0.65:1.65];
+set format y "%.1f {/Symbol \264}"
 set ytics (0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6)
 set ylabel "Speedup,  bot. opt.  {/Symbol \256}  top opt." offset -0.5,0
@@ -30,5 +29,5 @@
 
 set xrange [-0.7:27.5];
-set xlabel "Criterion;  top / bot. Options;  Prevalence" offset 0,-1.5
+set xlabel "Criterion;  top-bottom Options;  Prevalence" offset 0,-1.5
 set format x ""
 set xtics ( \
@@ -42,8 +41,8 @@
 
 set label "small"                           at first  1.5, graph  1.05 center
-set label "(AMD)"                           at first  1.5, graph  0.06 center font "Times-Bold,18"
+set label "(AMD)"                           at first  1.5, graph  0.06 center font "Times-Bold,18" front
 set label "medium"                          at first  1.5, graph -0.05 center
 set label "small"                           at first  6.5, graph  1.05 center
-set label "(Intel)"                         at first  6.5, graph  0.06 center font "Times-Bold,18"
+set label "(Intel)"                         at first  6.5, graph  0.06 center font "Times-Bold,18" front
 set label "medium"                          at first  6.5, graph -0.05 center
 set label "Size Zone"                       at first  4  , graph -0.14 center
@@ -60,5 +59,5 @@
 set label "ins. elem."                      at first 19.5, graph -0.05 center
 set label "all head"                        at first 24.5, graph  1.05 center
-set label "rem. elem"                       at first 24.5, graph -0.05 center
+set label "rem. elem."                       at first 24.5, graph -0.05 center
 set label "Accessor"                        at first 22  , graph -0.14 center
 
@@ -84,60 +83,123 @@
 set arrow 21+.4 from 26+.4, graph -0.10 to 26+.4, graph -0.08 nohead lw 1
 
+# legend, augmented
+set key outside top center horizontal maxrows 1 samplen 2 width +1 # offset -10,0
+set object 2 rect from first  3.20, screen 0.93 to first  4.85, screen 0.99 fc rgb "blue"        fs transparent solid 0.20 border lc rgb "blue"        lw 0.3
+set object 3 rect from first  8.80, screen 0.93 to first 10.45, screen 0.99 fc rgb "dark-orange" fs transparent solid 0.25 border lc rgb "dark-orange" lw 0.3
+set object 4 rect from first 14.40, screen 0.93 to first 16.05, screen 0.99 fc rgb "magenta"     fs transparent solid 0.20 border lc rgb "magenta"     lw 0.3
+set object 5 rect from first 19.98, screen 0.93 to first 21.63, screen 0.99 fc rgb "dark-violet" fs transparent solid 0.25 border lc rgb "dark-violet" lw 0.3
+# word "mean" is title of a data series plotted froom $Singleton
+set arrow 99 from first 20.8, screen 0.96 to first 23, screen 0.96  nohead lw 1 dt 2
+
 set errorbars 2.0
 set pointintervalbox 0
 
-barHtScale_phys = 0.05
-barHtScale_op = 0.1
-barHtScale_fx = 0.05
-
-
-plot INDIR."/plot-list-2ord.dat" \
-       i ( 0 + 0) using (0):(0):( 0 + 0):( 0 + 0 +       barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "blue"        fs transparent solid 0.15 noborder, \
-    '' i ( 0 + 3) using (0):(0):( 0 + 1):( 0 + 1 +       barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "dark-orange" fs transparent solid 0.15 noborder, \
-    '' i ( 0 + 2) using (0):(0):( 0 + 2):( 0 + 2 +       barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "magenta"     fs transparent solid 0.15 noborder, \
-    '' i ( 0 + 1) using (0):(0):( 0 + 3):( 0 + 3 + 3.5 * barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "purple"      fs transparent solid 0.35 noborder, \
-    '' i ( 0 + 0) using                  ( 0 + 0 +       barHtScale_fx * $3):2 notitle with steps lc rgb "blue"         lw 0.3, \
-    '' i ( 0 + 3) using                  ( 0 + 1 +       barHtScale_fx * $3):2 notitle with steps lc rgb "dark-orange"  lw 0.3, \
-    '' i ( 0 + 2) using                  ( 0 + 2 +       barHtScale_fx * $3):2 notitle with steps lc rgb "magenta"      lw 0.3, \
-    '' i ( 0 + 1) using                  ( 0 + 3 + 3.5 * barHtScale_fx * $3):2 notitle with steps lc rgb "purple"       lw 0.3, \
-\
-    '' i ( 4 + 0) using (0):(0):( 5 + 0):( 5 + 0 +       barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "blue"        fs transparent solid 0.15 noborder, \
-    '' i ( 4 + 3) using (0):(0):( 5 + 1):( 5 + 1 +       barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "dark-orange" fs transparent solid 0.15 noborder, \
-    '' i ( 4 + 2) using (0):(0):( 5 + 2):( 5 + 2 +       barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "magenta"     fs transparent solid 0.15 noborder, \
-    '' i ( 4 + 1) using (0):(0):( 5 + 3):( 5 + 3 + 3.5 * barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "purple"      fs transparent solid 0.35 noborder, \
-    '' i ( 4 + 0) using                  ( 5 + 0 +       barHtScale_fx * $3):2 notitle with steps lc rgb "blue"         lw 0.3, \
-    '' i ( 4 + 3) using                  ( 5 + 1 +       barHtScale_fx * $3):2 notitle with steps lc rgb "dark-orange"  lw 0.3, \
-    '' i ( 4 + 2) using                  ( 5 + 2 +       barHtScale_fx * $3):2 notitle with steps lc rgb "magenta"      lw 0.3, \
-    '' i ( 4 + 1) using                  ( 5 + 3 + 3.5 * barHtScale_fx * $3):2 notitle with steps lc rgb "purple"       lw 0.3, \
-\
-    '' i ( 8 + 0) using (0):(0):(10 + 0):(10 + 0 + barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "blue"        fs transparent solid 0.15 noborder, \
-    '' i ( 8 + 2) using (0):(0):(10 + 1):(10 + 1 + barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "dark-orange" fs transparent solid 0.15 noborder, \
-    '' i ( 8 + 1) using (0):(0):(10 + 2):(10 + 2 + barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "magenta"     fs transparent solid 0.15 noborder, \
-    '' i ( 8 + 0) using                  (10 + 0 + barHtScale_fx * $3):2 notitle with steps lc rgb "blue"         lw 0.3, \
-    '' i ( 8 + 2) using                  (10 + 1 + barHtScale_fx * $3):2 notitle with steps lc rgb "dark-orange"  lw 0.3, \
-    '' i ( 8 + 1) using                  (10 + 2 + barHtScale_fx * $3):2 notitle with steps lc rgb "magenta"      lw 0.3, \
-\
-    '' i (11 + 0) using (0):(0):(14 + 0):(14 + 0 + barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "blue"        fs transparent solid 0.15 noborder, \
-    '' i (11 + 2) using (0):(0):(14 + 1):(14 + 1 + barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "dark-orange" fs transparent solid 0.15 noborder, \
-    '' i (11 + 1) using (0):(0):(14 + 2):(14 + 2 + barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "magenta"     fs transparent solid 0.15 noborder, \
-    '' i (11 + 0) using                  (14 + 0 + barHtScale_fx * $3):2 notitle with steps lc rgb "blue"         lw 0.3, \
-    '' i (11 + 2) using                  (14 + 1 + barHtScale_fx * $3):2 notitle with steps lc rgb "dark-orange"  lw 0.3, \
-    '' i (11 + 1) using                  (14 + 2 + barHtScale_fx * $3):2 notitle with steps lc rgb "magenta"      lw 0.3, \
-\
-    '' i (14 + 0) using (0):(0):(18 + 0):(18 + 0 +       barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "blue"        fs transparent solid 0.15 noborder, \
-    '' i (14 + 3) using (0):(0):(18 + 1):(18 + 1 +       barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "dark-orange" fs transparent solid 0.15 noborder, \
-    '' i (14 + 2) using (0):(0):(18 + 2):(18 + 2 +       barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "magenta"     fs transparent solid 0.15 noborder, \
-    '' i (14 + 1) using (0):(0):(18 + 3):(18 + 3 + 3.5 * barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "purple"      fs transparent solid 0.35 noborder, \
-    '' i (14 + 0) using                  (18 + 0 +       barHtScale_fx * $3):2 notitle with steps lc rgb "blue"         lw 0.3, \
-    '' i (14 + 3) using                  (18 + 1 +       barHtScale_fx * $3):2 notitle with steps lc rgb "dark-orange"  lw 0.3, \
-    '' i (14 + 2) using                  (18 + 2 +       barHtScale_fx * $3):2 notitle with steps lc rgb "magenta"      lw 0.3, \
-    '' i (14 + 1) using                  (18 + 3 + 3.5 * barHtScale_fx * $3):2 notitle with steps lc rgb "purple"       lw 0.3, \
-\
-    '' i (18 + 0) using (0):(0):(23 + 0):(23 + 0 +       barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "blue"        fs transparent solid 0.15 noborder, \
-    '' i (18 + 3) using (0):(0):(23 + 1):(23 + 1 +       barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "dark-orange" fs transparent solid 0.15 noborder, \
-    '' i (18 + 2) using (0):(0):(23 + 2):(23 + 2 +       barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "magenta"     fs transparent solid 0.15 noborder, \
-    '' i (18 + 1) using (0):(0):(23 + 3):(23 + 3 + 3.5 * barHtScale_fx * $3):1:2 title columnheader(1) with boxxyerror fc rgb "purple"      fs transparent solid 0.35 noborder, \
-    '' i (18 + 0) using                  (23 + 0 +       barHtScale_fx * $3):2 notitle with steps lc rgb "blue"         lw 0.3, \
-    '' i (18 + 3) using                  (23 + 1 +       barHtScale_fx * $3):2 notitle with steps lc rgb "dark-orange"  lw 0.3, \
-    '' i (18 + 2) using                  (23 + 2 +       barHtScale_fx * $3):2 notitle with steps lc rgb "magenta"      lw 0.3, \
-    '' i (18 + 1) using                  (23 + 3 + 3.5 * barHtScale_fx * $3):2 notitle with steps lc rgb "purple"       lw 0.3
+# One row, to plot one-off points
+$Singleton <<EOD
+0
+EOD
+
+
+
+
+# show colornames
+#   blue               #0000ff =   0   0 255
+#   dark-orange        #c04000 = 192  64   0
+#   magenta            #ff00ff = 255   0 255
+#   purple             #c080ff = 192 128 255
+
+
+
+
+
+set errorbars 0 linewidth 4
+
+
+barHtScale = 0.048
+
+plot \
+   INDIR."/plot-list-2ord.det.dat" \
+       i ( 0 + 0) using (0):(0):( 0 + 0):( 0 + 0 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "blue"        fs transparent solid 0.20 noborder, \
+    '' i ( 0 + 3) using (0):(0):( 0 + 1):( 0 + 1 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "dark-orange" fs transparent solid 0.25 noborder, \
+    '' i ( 0 + 2) using (0):(0):( 0 + 2):( 0 + 2 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "magenta"     fs transparent solid 0.20 noborder, \
+    '' i ( 0 + 1) using (0):(0):( 0 + 3):( 0 + 3 + 3.5 * barHtScale * $3):1:2 notitle with boxxyerror fc rgb "dark-violet" fs transparent solid 0.25 noborder, \
+    '' i ( 0 + 0) using                  ( 0 + 0 +       barHtScale * $3):2 notitle with steps lc rgb "blue"         lw 0.3, \
+    '' i ( 0 + 3) using                  ( 0 + 1 +       barHtScale * $3):2 notitle with steps lc rgb "dark-orange"  lw 0.3, \
+    '' i ( 0 + 2) using                  ( 0 + 2 +       barHtScale * $3):2 notitle with steps lc rgb "magenta"      lw 0.3, \
+    '' i ( 0 + 1) using                  ( 0 + 3 + 3.5 * barHtScale * $3):2 notitle with steps lc rgb "dark-violet"  lw 0.3, \
+\
+    '' i ( 4 + 0) using (0):(0):( 5 + 0):( 5 + 0 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "blue"        fs transparent solid 0.20 noborder, \
+    '' i ( 4 + 3) using (0):(0):( 5 + 1):( 5 + 1 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "dark-orange" fs transparent solid 0.25 noborder, \
+    '' i ( 4 + 2) using (0):(0):( 5 + 2):( 5 + 2 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "magenta"     fs transparent solid 0.20 noborder, \
+    '' i ( 4 + 1) using (0):(0):( 5 + 3):( 5 + 3 + 3.5 * barHtScale * $3):1:2 notitle with boxxyerror fc rgb "dark-violet" fs transparent solid 0.25 noborder, \
+    '' i ( 4 + 0) using                  ( 5 + 0 +       barHtScale * $3):2 notitle with steps lc rgb "blue"         lw 0.3, \
+    '' i ( 4 + 3) using                  ( 5 + 1 +       barHtScale * $3):2 notitle with steps lc rgb "dark-orange"  lw 0.3, \
+    '' i ( 4 + 2) using                  ( 5 + 2 +       barHtScale * $3):2 notitle with steps lc rgb "magenta"      lw 0.3, \
+    '' i ( 4 + 1) using                  ( 5 + 3 + 3.5 * barHtScale * $3):2 notitle with steps lc rgb "dark-violet"  lw 0.3, \
+\
+    '' i ( 8 + 0) using (0):(0):(10 + 0):(10 + 0 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "blue"        fs transparent solid 0.20 noborder, \
+    '' i ( 8 + 2) using (0):(0):(10 + 1):(10 + 1 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "dark-orange" fs transparent solid 0.25 noborder, \
+    '' i ( 8 + 1) using (0):(0):(10 + 2):(10 + 2 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "magenta"     fs transparent solid 0.20 noborder, \
+    '' i ( 8 + 0) using                  (10 + 0 +       barHtScale * $3):2 notitle with steps lc rgb "blue"         lw 0.3, \
+    '' i ( 8 + 2) using                  (10 + 1 +       barHtScale * $3):2 notitle with steps lc rgb "dark-orange"  lw 0.3, \
+    '' i ( 8 + 1) using                  (10 + 2 +       barHtScale * $3):2 notitle with steps lc rgb "magenta"      lw 0.3, \
+\
+    '' i (11 + 0) using (0):(0):(14 + 0):(14 + 0 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "blue"        fs transparent solid 0.20 noborder, \
+    '' i (11 + 2) using (0):(0):(14 + 1):(14 + 1 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "dark-orange" fs transparent solid 0.25 noborder, \
+    '' i (11 + 1) using (0):(0):(14 + 2):(14 + 2 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "magenta"     fs transparent solid 0.20 noborder, \
+    '' i (11 + 0) using                  (14 + 0 +       barHtScale * $3):2 notitle with steps lc rgb "blue"         lw 0.3, \
+    '' i (11 + 2) using                  (14 + 1 +       barHtScale * $3):2 notitle with steps lc rgb "dark-orange"  lw 0.3, \
+    '' i (11 + 1) using                  (14 + 2 +       barHtScale * $3):2 notitle with steps lc rgb "magenta"      lw 0.3, \
+\
+    '' i (14 + 0) using (0):(0):(18 + 0):(18 + 0 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "blue"        fs transparent solid 0.20 noborder, \
+    '' i (14 + 3) using (0):(0):(18 + 1):(18 + 1 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "dark-orange" fs transparent solid 0.25 noborder, \
+    '' i (14 + 2) using (0):(0):(18 + 2):(18 + 2 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "magenta"     fs transparent solid 0.20 noborder, \
+    '' i (14 + 1) using (0):(0):(18 + 3):(18 + 3 + 3.5 * barHtScale * $3):1:2 notitle with boxxyerror fc rgb "dark-violet" fs transparent solid 0.25 noborder, \
+    '' i (14 + 0) using                  (18 + 0 +       barHtScale * $3):2 notitle with steps lc rgb "blue"         lw 0.3, \
+    '' i (14 + 3) using                  (18 + 1 +       barHtScale * $3):2 notitle with steps lc rgb "dark-orange"  lw 0.3, \
+    '' i (14 + 2) using                  (18 + 2 +       barHtScale * $3):2 notitle with steps lc rgb "magenta"      lw 0.3, \
+    '' i (14 + 1) using                  (18 + 3 + 3.5 * barHtScale * $3):2 notitle with steps lc rgb "dark-violet"  lw 0.3, \
+\
+    '' i (18 + 0) using (0):(0):(23 + 0):(23 + 0 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "blue"        fs transparent solid 0.20 noborder, \
+    '' i (18 + 3) using (0):(0):(23 + 1):(23 + 1 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "dark-orange" fs transparent solid 0.25 noborder, \
+    '' i (18 + 2) using (0):(0):(23 + 2):(23 + 2 +       barHtScale * $3):1:2 notitle with boxxyerror fc rgb "magenta"     fs transparent solid 0.20 noborder, \
+    '' i (18 + 1) using (0):(0):(23 + 3):(23 + 3 + 3.5 * barHtScale * $3):1:2 notitle with boxxyerror fc rgb "dark-violet" fs transparent solid 0.25 noborder, \
+    '' i (18 + 0) using                  (23 + 0 +       barHtScale * $3):2 notitle with steps lc rgb "blue"         lw 0.3, \
+    '' i (18 + 3) using                  (23 + 1 +       barHtScale * $3):2 notitle with steps lc rgb "dark-orange"  lw 0.3, \
+    '' i (18 + 2) using                  (23 + 2 +       barHtScale * $3):2 notitle with steps lc rgb "magenta"      lw 0.3, \
+    '' i (18 + 1) using                  (23 + 3 + 3.5 * barHtScale * $3):2 notitle with steps lc rgb "dark-violet"  lw 0.3, \
+\
+   INDIR."/plot-list-2ord.sum.dat" \
+       i ( 0 + 0) using ( 0 + 0 ):1 title "{/Helvetica=15 C{/Symbol \42}}"   with points     lc rgb "blue"        pt  7  ps 1.0, \
+    '' i ( 0 + 3) using ( 0 + 1 ):1 title "{/Symbol \155}C++"                with points     lc rgb "dark-orange" pt  9  ps 1.2, \
+    '' i ( 0 + 2) using ( 0 + 2 ):1 title "LQ-tailq"                         with points     lc rgb "magenta"     pt  11 ps 1.2, \
+    '' i ( 0 + 1) using ( 0 + 3 ):1 title "LQ-list"                          with points     lc rgb "dark-violet" pt  13 ps 1.4, \
+    '' i ( 0 + 0) using ( 0 + 0):1:( 0 + 0):( 0 + 0 + .8)            notitle with xerrorbars lc rgb "blue"        pt  0, \
+    '' i ( 0 + 3) using ( 0 + 1):1:( 0 + 1):( 0 + 1 + .8)            notitle with xerrorbars lc rgb "dark-orange" pt  0, \
+    '' i ( 0 + 2) using ( 0 + 2):1:( 0 + 2):( 0 + 2 + .8)            notitle with xerrorbars lc rgb "magenta"     pt  0, \
+    '' i ( 0 + 1) using ( 0 + 3):1:( 0 + 3):( 0 + 3 + .8)            notitle with xerrorbars lc rgb "dark-violet" pt  0, \
+\
+    '' i ( 4 + 0) using ( 5 + 0):1:( 5 + 0):( 5 + 0 + .8) notitle with xerrorbars lc rgb "blue"        pt  7  ps 1.0, \
+    '' i ( 4 + 3) using ( 5 + 1):1:( 5 + 1):( 5 + 1 + .8) notitle with xerrorbars lc rgb "dark-orange" pt  9  ps 1.2, \
+    '' i ( 4 + 2) using ( 5 + 2):1:( 5 + 2):( 5 + 2 + .8) notitle with xerrorbars lc rgb "magenta"     pt  11 ps 1.2, \
+    '' i ( 4 + 1) using ( 5 + 3):1:( 5 + 3):( 5 + 3 + .8) notitle with xerrorbars lc rgb "dark-violet" pt  13 ps 1.4, \
+\
+    '' i ( 8 + 0) using (10 + 0):1:(10 + 0):(10 + 0 + .8) notitle with xerrorbars lc rgb "blue"        pt  7  ps 1.0, \
+    '' i ( 8 + 2) using (10 + 1):1:(10 + 1):(10 + 1 + .8) notitle with xerrorbars lc rgb "dark-orange" pt  9  ps 1.2, \
+    '' i ( 8 + 1) using (10 + 2):1:(10 + 2):(10 + 2 + .8) notitle with xerrorbars lc rgb "magenta"     pt  11 ps 1.2, \
+\
+    '' i (11 + 0) using (14 + 0):1:(14 + 0):(14 + 0 + .8) notitle with xerrorbars lc rgb "blue"        pt  7  ps 1.0, \
+    '' i (11 + 2) using (14 + 1):1:(14 + 1):(14 + 1 + .8) notitle with xerrorbars lc rgb "dark-orange" pt  9  ps 1.2, \
+    '' i (11 + 1) using (14 + 2):1:(14 + 2):(14 + 2 + .8) notitle with xerrorbars lc rgb "magenta"     pt  11 ps 1.2, \
+\
+    '' i (14 + 0) using (18 + 0):1:(18 + 0):(18 + 0 + .8) notitle with xerrorbars lc rgb "blue"        pt  7  ps 1.0, \
+    '' i (14 + 3) using (18 + 1):1:(18 + 1):(18 + 1 + .8) notitle with xerrorbars lc rgb "dark-orange" pt  9  ps 1.2, \
+    '' i (14 + 2) using (18 + 2):1:(18 + 2):(18 + 2 + .8) notitle with xerrorbars lc rgb "magenta"     pt  11 ps 1.2, \
+    '' i (14 + 1) using (18 + 3):1:(18 + 3):(18 + 3 + .8) notitle with xerrorbars lc rgb "dark-violet" pt  13 ps 1.4, \
+\
+    '' i (18 + 0) using (23 + 0):1:(23 + 0):(23 + 0 + .8) notitle with xerrorbars lc rgb "blue"        pt  7  ps 1.0, \
+    '' i (18 + 3) using (23 + 1):1:(23 + 1):(23 + 1 + .8) notitle with xerrorbars lc rgb "dark-orange" pt  9  ps 1.2, \
+    '' i (18 + 2) using (23 + 2):1:(23 + 2):(23 + 2 + .8) notitle with xerrorbars lc rgb "magenta"     pt  11 ps 1.2, \
+    '' i (18 + 1) using (23 + 3):1:(23 + 3):(23 + 3 + .8) notitle with xerrorbars lc rgb "dark-violet" pt  13 ps 1.4, \
+\
+    $Singleton using (0):(0.1):("This text is placed offscrean-low") title "↕ mean" with labels
Index: doc/theses/mike_brooks_MMath/plots/list-2ord.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-2ord.py	(revision e35ecd0d30acc83cf5a77153bc63d9d21802b580)
+++ doc/theses/mike_brooks_MMath/plots/list-2ord.py	(revision 0f9c67bf2e86875a3e1a3837197710b366b81419)
@@ -6,4 +6,7 @@
 sys.path.insert(0, os.path.dirname(__file__))
 from ListCommon import *
+
+sumFile = open( sys.argv[1], 'w' )
+detFile = open( sys.argv[2], 'w' )
 
 # for mvmt+polarity effects, where lq-list doesn't support queue or inslast
@@ -17,5 +20,7 @@
                    'SizeZone': ['ML'] },
     drillOn=['machine', 'SizeZone', 'fx'],
-    marginalizeOn=['SizeZone'] )
+    marginalizeOn=['SizeZone'],
+    sumFile = sumFile,
+    detFile = detFile )
 
 printHistos(
@@ -26,5 +31,7 @@
                    'SizeZone': ['ML'] },
     drillOn=['machine', 'SizeZone', 'fx'],
-    marginalizeOn=['SizeZone'] )
+    marginalizeOn=['SizeZone'],
+    sumFile = sumFile,
+    detFile = detFile )
 
 printHistos(
@@ -35,5 +42,7 @@
                    'fx': noLqList },
     drillOn=['movement', 'fx'],
-    marginalizeOn=['movement'] )
+    marginalizeOn=['movement'],
+    sumFile = sumFile,
+    detFile = detFile )
 
 printHistos(
@@ -44,5 +53,7 @@
                    'fx': noLqList },
     drillOn=['polarity', 'fx'],
-    marginalizeOn=['polarity'] )
+    marginalizeOn=['polarity'],
+    sumFile = sumFile,
+    detFile = detFile )
 
 printHistos(
@@ -50,8 +61,10 @@
     tgtPolarity = 'all',
     tgtAccessor = 'all',
-    earlyFilter = { 'accessor': ['allhead', 'inselem'] },
-    lateFilter = { 'accessor': ['inselem'] },
+    earlyFilter = { 'accessor': ['allhead', 'inselem'] }, # set up head-to-head benchmarking
+    lateFilter = { 'accessor': ['inselem'] }, # show one side of the mirror, as usual
     drillOn=['accessor', 'fx'],
-    marginalizeOn=['accessor'] )
+    marginalizeOn=['accessor'],
+    sumFile = sumFile,
+    detFile = detFile )
 
 printHistos(
@@ -62,3 +75,5 @@
     lateFilter = { 'accessor': ['remelem'] },
     drillOn=['accessor', 'fx'],
-    marginalizeOn=['accessor'] )
+    marginalizeOn=['accessor'],
+    sumFile = sumFile,
+    detFile = detFile )
