Index: doc/theses/mike_brooks_MMath/plots/ListCommon.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/ListCommon.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/ListCommon.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,188 @@
+# Based on crunch1
+# updates for run-scenario columns not seen back then 
+# result eyeballs okay
+
+import pandas as pd
+import numpy as np
+import sys
+import os
+
+
+def getSingleResults(infileLocal, *,
+    tgtMovement = 'all',
+    tgtPolarity = 'all',
+    tgtAccessor = 'all',
+    tgtInterleave = 0.0 ):
+
+    infile = os.path.dirname(os.path.abspath(__file__)) + '/../benchmarks/list/' + infileLocal
+
+    timings = pd.read_csv(
+        infile,
+        names=['RunMoment', 'RunIdx', 'Args', 'Program', 'expt_ops_completed', 'expt_elapsed_sec', 'mean_op_dur_ns'],
+        dtype={'RunMoment':          str,
+            'RunIdx':             np.int64,
+            'Args':               str,
+            'Program':            str,
+            'expt_ops_completed': np.int64,
+            'expt_elapsed_sec':   np.float64,
+            'mean_op_dur_ns':     np.float64},
+        parse_dates=['RunMoment']
+        )
+    #print(timings.head())
+
+    ## parse executable name and args
+
+    timings[['ExperimentDurSec',
+        'CheckDonePeriod',
+        'NumNodes',
+        'ExperimentDurOpCount',
+        'Seed',
+        'InterleaveFrac']] = timings['Args'].str.strip().str.split(expand=True)
+    timings["NumNodes"] = pd.to_numeric(timings["NumNodes"])
+    timings["InterleaveFrac"] = pd.to_numeric(timings["InterleaveFrac"]).round(3)
+
+    timings[['__ProgramPrefix',
+        'fx',
+        'op']] = timings['Program'].str.split('--', expand=True)
+
+    timings[['movement',
+        'polarity',
+        'accessor']] = timings['op'].str.split('-', expand=True)
+
+    ## calculate relative to baselines
+    baseline_fx = 'lq-tailq'
+    baseline_intrl = 0.0
+
+    # chose calc "FineCrossRun" from labpc:crunch3
+    byPeer = timings.groupby(['NumNodes', 'op', 'InterleaveFrac'])
+    for [NumNodes, op, intrlFrac], peerGroup in byPeer:
+        baselineRows = peerGroup.groupby(['fx']).get_group(baseline_fx)
+        baselineDur = meanNoOutlr( baselineRows['mean_op_dur_ns'] )
+        timings.loc[peerGroup.index, 'BaselineFxOpDurNs'] = baselineDur
+    timings['OpDurRelFx'] = timings['mean_op_dur_ns'] / timings['BaselineFxOpDurNs']
+
+    # relative to same fx, no interleave
+    byPeer = timings.groupby(['NumNodes', 'op', 'fx'])
+    for [NumNodes, op, fx], peerGroup in byPeer:
+        baselineRows = peerGroup.groupby(['InterleaveFrac']).get_group(baseline_intrl)
+        baselineDur = meanNoOutlr( baselineRows['mean_op_dur_ns'] )
+        timings.loc[peerGroup.index, 'BaselineIntrlOpDurNs'] = baselineDur
+    timings['OpDurRelIntrl'] = timings['mean_op_dur_ns'] / timings['BaselineIntrlOpDurNs']
+
+    movements = timings['movement'].unique()
+    polarities = timings['polarity'].unique()
+    accessors = timings['accessor'].unique()
+    interleaves = timings['InterleaveFrac'].unique()
+
+    if movements.size > 1:
+        movements = np.append(movements, 'all')
+    if polarities.size > 1:
+        polarities = np.append(polarities, 'all')
+    if accessors.size > 1:
+        accessors = np.append(accessors, 'all')
+
+    if (tgtMovement != 'all'):
+        grp = timings.groupby('movement')
+        timings = grp.get_group(tgtMovement)
+    if (tgtPolarity != 'all'):
+        grp = timings.groupby('polarity')
+        timings = grp.get_group(tgtPolarity)
+    if (tgtAccessor != 'all'):
+        grp = timings.groupby('accessor')
+        timings = grp.get_group(tgtAccessor)
+    if (tgtInterleave != 'all'):
+        timings = timings[ timings['InterleaveFrac'] == float(tgtInterleave) ]
+
+    return timings
+
+def getSummaryMeta(metaFileCore):
+    metafile = os.path.dirname(os.path.abspath(__file__)) + "/" + metaFileCore + '-meta.dat'
+    metadata = pd.read_csv(
+        metafile,
+        names=['OpIx', 'Op'],
+        delimiter='\t'
+    )
+    metadata[['movement',
+        'polarity',
+        'accessor']] = metadata['Op'].str.split('\\\\n', expand=True)
+    metadata.replace('*', 'all', inplace=True)
+    return metadata
+
+def printManySummary(*,
+        infileLocal,
+        metafileCore,
+        fxs,
+        sizeQual = (lambda x: x < 150),  # x < 8
+        tgtInterleave = 0.0,
+        measure = 'OpDurRelFx') :
+    
+    metadata = getSummaryMeta(metafileCore)
+
+    print("# op_num\tfx_num\tfx\tmean\tstdev\tmin\tmax\tcount\tpl95\tpl68\tp50\tph68\tph95")
+
+    for op in metadata.itertuples():
+        timings = getSingleResults(infileLocal,
+            tgtMovement = op.movement,
+            tgtPolarity = op.polarity,
+            tgtAccessor = op.accessor,
+            tgtInterleave = tgtInterleave )
+
+        timings = timings[ timings['fx'].isin(fxs) ]
+        timings = timings[ timings['NumNodes'].apply(sizeQual) ]
+
+        fxnums = timings['fx'].apply(
+            lambda fx: fxs.index(fx) + 1
+        )
+        timings.insert(loc=0, column='fx_num', value=fxnums)
+        timings.insert(loc=0, column='op_num', value=op.OpIx)
+
+        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='')
+
+def printSingleDetail(infileLocal, *,
+    tgtMovement = 'all',
+    tgtPolarity = 'all',
+    tgtAccessor = 'all',
+    tgtInterleave = 0.0,
+    measure = 'mean_op_dur_ns' ):
+
+    timings = getSingleResults(infileLocal,
+        tgtMovement = tgtMovement,
+        tgtPolarity = tgtPolarity,
+        tgtAccessor = tgtAccessor,
+        tgtInterleave = tgtInterleave)
+    groupedFx = timings.groupby('fx')
+
+    for fx, fgroup in groupedFx:
+        # print(fgroup.head())
+        groupedRun = fgroup.groupby(['NumNodes']) # , 'fx', 'op'
+        aggregated = groupedRun[measure].agg(
+            ["mean", "std", "min", "max", "count", "sum"]
+        )
+        aggregated['mean_no_outlr'] = (
+            ( aggregated['sum'] - aggregated['min'] - aggregated['max'] )
+            /
+            ( aggregated['count'] - 2 )
+        )
+
+        #print(aggregated.head())
+
+        print('"{header}"'.format(header=fx))
+        text = aggregated.to_csv(header=False, index=True, sep='\t')
+        print(text)
+        print()
+        print()
+
+def meanNoOutlr(range):
+    return ( range.sum() - range.min() - range.max() ) / ( range.count() - 2 )
Index: doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-meta.dat
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-meta.dat	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-meta.dat	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,8 @@
+1	stack\n*\n*
+2	queue\n*\n*
+3	*\ninsfirst\n*
+4	*\ninslast\n*
+5	*\n*\nallhead
+6	*\n*\ninselem
+7	*\n*\nremelem
+8	*\n*\n*
Index: doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem-meta.dat
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem-meta.dat	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem-meta.dat	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,5 @@
+1	stack\n*\nremelem
+2	queue\n*\nremelem
+3	*\ninsfirst\nremelem
+4	*\ninslast\nremelem
+5	*\n*\nremelem
Index: doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem.d
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,2 @@
+plots/list-cfa-attrib-remelem.gp.INPUTS: build/plot-list-cfa-attrib-remelem.dat plots/list-cfa-attrib-remelem-meta.dat | build
+plots/list-cfa-attrib-remelem.py.INPUTS: benchmarks/list/results-general.csv plots/list-cfa-attrib-remelem-meta.dat
Index: doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem.gp
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,79 @@
+
+#
+#     Save in UTF-8 encoding.
+#
+
+
+set terminal pdf color enhanced size 6.0in,3.0in font "Times,17"
+
+INDIR="build"
+OUTDIR="build"
+SRCDIR="plots"
+
+set output OUTDIR.'/plot-list-cfa-attrib-remelem.pdf'
+
+set bmargin 6  # extra room at bottom for multiline x axis labels
+
+set xrange [1:6]
+set xlabel "Operation (movement / polarity / accessor)"  offset 0,-2,0
+set xtics offset 4.2,0
+
+set logscale y 2
+set yrange [0.88:2.1];
+set ytics ( \
+   "+50%%" 2, \
+   "+40%%" 1.666666667, \
+   "+30%%" 1.428571429, \
+   "+20%%" 1.25, \
+   "+10%%" 1.111111111, \
+   "0" 1, \
+   "-10%%" 0.909090909, \
+   "-20%%" 0.833333333, \
+   "-30%%" 0.769230769, \
+)
+set ylabel "Duration (tailq-Relative)"
+
+# Draw axis-like line at speedup=0% (y=1.0)
+set arrow from graph 0, first 1 to graph 1, first 1 nohead lt -1 lw 2
+
+set grid
+set key top center horizontal
+
+BOXSPACING=0.14
+BOXWIDTH=BOXSPACING * .88
+set boxwidth BOXWIDTH absolute
+
+NUM_FXS=6
+
+offset(opNum, fxNum) = opNum + fxNum * BOXSPACING - (NUM_FXS+1) * BOXSPACING / 2 + 0.5
+
+# One row, to plot one-off points
+$Singleton <<EOD
+0
+EOD
+
+# empty candlesticks for quantiles, then
+# varyiously styled points for means, then
+# x axis values, then
+# legend symbol augmentation
+plot INDIR.'/plot-list-cfa-attrib-remelem.dat' \
+        using ($2 == 1 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'full'      with candlesticks lt        rgb "blue", \
+     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'mand-head' with candlesticks lt        rgb "dark-goldenrod", \
+     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'no-listed' with candlesticks lt        rgb "dark-salmon", \
+     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'parity'    with candlesticks lt        rgb "gray40", \
+     '' using ($2 == 5 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'no-iter'   with candlesticks lt        rgb "dark-turquoise", \
+     '' using ($2 == 6 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'strip'     with candlesticks lt        rgb "red", \
+     '' using ($2 == 1 ? (offset($1, $2)) : 1/0):4          notitle           with points pt 7  lt        rgb "blue", \
+     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):4:("◐")    notitle           with labels       textcolor rgb "dark-goldenrod" font "DejaVuSans-Bold,14", \
+     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4:("◑")    notitle           with labels       textcolor rgb "dark-salmon"	 font "DejaVuSans-Bold,14", \
+     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):4          notitle           with points pt 6  lt        rgb "gray40", \
+     '' using ($2 == 5 ? (offset($1, $2)) : 1/0):4          notitle           with points pt 3  lt        rgb "dark-turquoise", \
+     '' using ($2 == 6 ? (offset($1, $2)) : 1/0):4          notitle           with points pt 15 lt        rgb "red", \
+     SRCDIR.'/list-cfa-attrib-remelem-meta.dat' \
+        using 1:(-999):xtic(2) notitle with points, \
+     $Singleton using (2.7 ):(1.99)                         notitle           with points pt 7  lt        rgb "blue", \
+     $Singleton using (2.7 ):(1.83):("◐")                   notitle           with labels       textcolor rgb "dark-goldenrod" font "DejaVuSans-Bold,14", \
+     $Singleton using (3.85):(1.99):("◑")                   notitle           with labels       textcolor rgb "dark-salmon"    font "DejaVuSans-Bold,14", \
+     $Singleton using (3.85):(1.83)                         notitle           with points pt 6  lt        rgb "gray40", \
+     $Singleton using (5.1 ):(1.99)                         notitle           with points pt 3  lt        rgb "dark-turquoise", \
+     $Singleton using (5.1 ):(1.83)                         notitle           with points pt 15 lt        rgb "red"
Index: doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,15 @@
+import pandas as pd
+import numpy as np
+import os
+import sys
+
+sys.path.insert(0, os.path.dirname(__file__))
+from ListCommon import *
+
+thisPy = os.path.splitext(os.path.basename(__file__))[0]
+
+printManySummary(
+    infileLocal = 'results-general.csv',
+    metafileCore = thisPy,
+    fxs=['cfa-cfa', 'cfa-mandHead', 'cfa-noListed', 'cfa-likeLq', 'cfa-noIter', 'cfa-strip']
+)
Index: doc/theses/mike_brooks_MMath/plots/list-cfa-attrib.d
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cfa-attrib.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cfa-attrib.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,2 @@
+plots/list-cfa-attrib.gp.INPUTS: build/plot-list-cfa-attrib.dat plots/list-cfa-attrib-meta.dat | build
+plots/list-cfa-attrib.py.INPUTS: benchmarks/list/results-general.csv plots/list-cfa-attrib-meta.dat
Index: doc/theses/mike_brooks_MMath/plots/list-cfa-attrib.gp
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cfa-attrib.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cfa-attrib.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,66 @@
+set terminal pdfcairo color enhanced size 6.0in,3.0in font "Times,17"
+
+INDIR="build"
+OUTDIR="build"
+SRCDIR="plots"
+
+set output OUTDIR.'/plot-list-cfa-attrib.pdf'
+
+set bmargin 6  # extra room at bottom for multiline x axis labels
+
+set xrange [1:9]
+set xlabel "Operation (movement / polarity / accessor)"  offset 0,-2,0
+set xtics offset 4.2,0
+
+set logscale y 2
+set yrange [0.75:1.8];
+set ytics ( \
+   "+40%%" 1.666666667, \
+   "+30%%" 1.428571429, \
+   "+20%%" 1.25, \
+   "+10%%" 1.111111111, \
+   "0" 1, \
+   "-10%%" 0.909090909, \
+   "-20%%" 0.833333333, \
+   "-30%%" 0.769230769, \
+)
+set ylabel "Duration (tailq-Relative)"
+
+# Draw axis-like line at speedup=0% (y=1.0)
+set arrow from graph 0, first 1 to graph 1, first 1 nohead lt -1 lw 2
+
+set grid
+set key top center horizontal
+
+BOXSPACING=0.2
+BOXWIDTH=BOXSPACING * .85
+set boxwidth BOXWIDTH absolute
+
+NUM_FXS=4
+
+offset(opNum, fxNum) = opNum + fxNum * BOXSPACING - (NUM_FXS+1) * BOXSPACING / 2 + 0.5
+
+# One row, to plot one-off points
+$Singleton <<EOD
+0
+EOD
+
+# empty candlesticks for quantiles, then
+# varyiously styled points for means, then
+# x axis values, then
+# legend symbol augmentation
+plot INDIR.'/plot-list-cfa-attrib.dat' \
+        using ($2 == 1 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'full'    with candlesticks lt rgb "blue"	   , \
+     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'parity'  with candlesticks lt rgb "gray40", \
+     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'no-iter' with candlesticks lt rgb "dark-turquoise"	, \
+     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'strip'   with candlesticks lt rgb "red"	, \
+     '' using ($2 == 1 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 7  lt rgb "blue"	   , \
+     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 6  lt rgb "gray40", \
+     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 3  lt rgb "dark-turquoise"	, \
+     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 15 lt rgb "red"	, \
+     SRCDIR.'/list-cfa-attrib-meta.dat' \
+        using 1:(-999):xtic(2) notitle with points, \
+     $Singleton using (2.85):(1.69)                         notitle         with points pt 7  lt rgb "blue"	   , \
+     $Singleton using (4.60):(1.69)                         notitle         with points pt 6  lt rgb "gray40", \
+     $Singleton using (6.30):(1.69)                         notitle         with points pt 3  lt rgb "dark-turquoise"	, \
+     $Singleton using (7.95):(1.69)                         notitle         with points pt 15 lt rgb "red"
Index: doc/theses/mike_brooks_MMath/plots/list-cfa-attrib.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cfa-attrib.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cfa-attrib.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,15 @@
+import pandas as pd
+import numpy as np
+import os
+import sys
+
+sys.path.insert(0, os.path.dirname(__file__))
+from ListCommon import *
+
+thisPy = os.path.splitext(os.path.basename(__file__))[0]
+
+printManySummary(
+    infileLocal = 'results-general.csv',
+    metafileCore = thisPy,
+    fxs=['cfa-cfa', 'cfa-likeLq', 'cfa-noIter', 'cfa-strip']
+)
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-exout-meta.dat
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-exout-meta.dat	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-exout-meta.dat	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,8 @@
+1	stack\ninsfirst\nallhead
+2	stack\ninsfirst\n*
+3	stack\n*\nallhead
+4	*\ninsfirst\nallhead
+5	stack\n*\n*
+6	*\ninsfirst\n*
+7	*\n*\nallhead
+8	*\n*\n*
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-exout.d
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-exout.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-exout.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,2 @@
+plots/list-cmp-exout.gp.INPUTS: build/plot-list-cmp-exout.dat plots/list-cmp-exout-meta.dat | build
+plots/list-cmp-exout.py.INPUTS: benchmarks/list/results-general.csv plots/list-cmp-exout-meta.dat
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-exout.gp
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-exout.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-exout.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,63 @@
+set terminal pdf color enhanced size 6.0in,3.0in font "Times,17"
+
+INDIR="build"
+OUTDIR="build"
+SRCDIR="plots"
+
+set output OUTDIR.'/plot-list-cmp-exout.pdf'
+
+set bmargin 6  # extra room at bottom for multiline x axis labels
+
+set xrange [1:9]
+set xlabel "Operation (movement / polarity / accessor)"  offset 0,-2,0
+set xtics offset 4.2,0
+
+set logscale y 2
+set yrange [0.75:1.8];
+set ytics ( \
+   "+40%%" 1.666666667, \
+   "+30%%" 1.428571429, \
+   "+20%%" 1.25, \
+   "+10%%" 1.111111111, \
+   "0" 1, \
+   "-10%%" 0.909090909, \
+   "-20%%" 0.833333333, \
+   "-30%%" 0.769230769, \
+)
+set ylabel "Duration (tailq-Relative)"
+
+# Draw axis-like line at speedup=0% (y=1.0)
+set arrow from graph 0, first 1 to graph 1, first 1 nohead lt -1 lw 2
+
+set grid
+set key top center horizontal
+
+BOXSPACING=0.25
+BOXWIDTH=BOXSPACING * .88
+set boxwidth BOXWIDTH absolute
+
+NUM_FXS=3
+
+offset(opNum, fxNum) = opNum + fxNum * BOXSPACING - (NUM_FXS+1) * BOXSPACING / 2 + 0.5
+
+# One row, to plot one-off points
+$Singleton <<EOD
+0
+EOD
+
+# empty candlesticks for quantiles, then
+# varyiously styled points for means, then
+# x axis values, then
+# legend symbol augmentation
+plot INDIR.'/plot-list-cmp-exout.dat' \
+        using ($2 == 1 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'cfa-cfa' with candlesticks lt rgb "blue"	   , \
+     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'upp-upp' with candlesticks lt rgb "dark-orange", \
+     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-list' with candlesticks lt rgb "purple"	, \
+     '' using ($2 == 1 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 7  lt rgb "blue"	   , \
+     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 9  lt rgb "dark-orange", \
+     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 13 lt rgb "purple"	, \
+     SRCDIR.'/list-cmp-exout-meta.dat' \
+        using 1:(-999):xtic(2) notitle with points, \
+     $Singleton using (3.73):(1.69)                         notitle         with points pt 7  lt rgb "blue"	   , \
+     $Singleton using (5.44):(1.69)                         notitle         with points pt 9  lt rgb "dark-orange", \
+     $Singleton using (7.14):(1.69)                         notitle         with points pt 13 lt rgb "purple"
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-exout.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-exout.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-exout.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,15 @@
+import pandas as pd
+import numpy as np
+import os
+import sys
+
+sys.path.insert(0, os.path.dirname(__file__))
+from ListCommon import *
+
+thisPy = os.path.splitext(os.path.basename(__file__))[0]
+
+printManySummary(
+    infileLocal = 'results-general.csv',
+    metafileCore = thisPy,
+    fxs=['cfa-cfa', 'upp-upp', 'lq-list']
+)
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-outcome-meta.dat
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-outcome-meta.dat	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-outcome-meta.dat	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,5 @@
+1	stack\n*\nremelem
+2	queue\n*\nremelem
+3	*\ninsfirst\nremelem
+4	*\ninslast\nremelem
+5	*\n*\nremelem
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-outcome.d
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-outcome.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-outcome.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,2 @@
+plots/list-cmp-intrl-outcome.gp.INPUTS: build/plot-list-cmp-intrl-outcome.dat plots/list-cmp-intrl-outcome-meta.dat | build
+plots/list-cmp-intrl-outcome.py.INPUTS: benchmarks/list/results-general.csv plots/list-cmp-intrl-outcome-meta.dat
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-outcome.gp
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-outcome.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-outcome.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,63 @@
+set terminal pdf color enhanced size 6.0in,3.0in font "Times,17"
+
+INDIR="build"
+OUTDIR="build"
+SRCDIR="plots"
+
+set output OUTDIR.'/plot-list-cmp-intrl-outcome.pdf'
+
+set bmargin 6  # extra room at bottom for multiline x axis labels
+
+set xrange [1:9]
+set xlabel "Operation (movement / polarity / accessor)"  offset 0,-2,0
+set xtics offset 4.2,0
+
+set logscale y 2
+set yrange [0.75:1.8];
+set ytics ( \
+   "40%%" 1.666666667, \
+   "30%%" 1.428571429, \
+   "20%%" 1.25, \
+   "10%%" 1.111111111, \
+   "0%%" 1, \
+   "-10%%" 0.909090909, \
+   "-20%%" 0.833333333, \
+   "-30%%" 0.769230769, \
+)
+set ylabel "Duration (tailq-Relative)"
+
+# Draw axis-like line at speedup=0% (y=1.0)
+set arrow from graph 0, first 1 to graph 1, first 1 nohead lt -1 lw 2
+
+set grid
+set key top center horizontal
+
+BOXSPACING=0.25
+BOXWIDTH=BOXSPACING * .90
+set boxwidth BOXWIDTH absolute
+
+NUM_FXS=3
+
+offset(opNum, fxNum) = opNum + fxNum * BOXSPACING - (NUM_FXS+1) * BOXSPACING / 2 + 0.5
+
+# One row, to plot one-off points
+$Singleton <<EOD
+0
+EOD
+
+# empty candlesticks for quantiles, then
+# varyiously styled points for means, then
+# x axis values, then
+# legend symbol augmentation
+plot INDIR.'/plot-list-cmp-intrl-outcome.dat' \
+        using ($2 == 1 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'upp-upp' with candlesticks lt rgb "dark-orange", \
+     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'cfa-cfa' with candlesticks lt rgb "blue"	   , \
+     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-list' with candlesticks lt rgb "purple"	, \
+     '' using ($2 == 1 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 7  lt rgb "dark-orange", \
+     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 9  lt rgb "blue"	   , \
+     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 13 lt rgb "purple"	, \
+     SRCDIR.'/list-cmp-intrl-outcome-meta.dat' \
+        using 1:(-999):xtic(2) notitle with points, \
+     $Singleton using (3.73):(1.69)                         notitle         with points pt 7  lt rgb "dark-orange", \
+     $Singleton using (5.44):(1.69)                         notitle         with points pt 9  lt rgb "blue"	   , \
+     $Singleton using (7.14):(1.69)                         notitle         with points pt 13 lt rgb "purple"
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-outcome.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-outcome.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-outcome.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,16 @@
+import pandas as pd
+import numpy as np
+import os
+import sys
+
+sys.path.insert(0, os.path.dirname(__file__))
+from ListCommon import *
+
+thisPy = os.path.splitext(os.path.basename(__file__))[0]
+
+printManySummary(
+    infileLocal = 'results-general.csv',
+    metafileCore = thisPy,
+    fxs=['upp-upp', 'cfa-cfa', 'lq-list'],
+    tgtInterleave = 0.5
+)
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-shift-meta.dat
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-shift-meta.dat	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-shift-meta.dat	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,5 @@
+1	stack\n*\nremelem
+2	queue\n*\nremelem
+3	*\ninsfirst\nremelem
+4	*\ninslast\nremelem
+5	*\n*\nremelem
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-shift.d
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-shift.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-shift.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,2 @@
+plots/list-cmp-intrl-shift.gp.INPUTS: build/plot-list-cmp-intrl-shift.dat plots/list-cmp-intrl-shift-meta.dat | build
+plots/list-cmp-intrl-shift.py.INPUTS: benchmarks/list/results-general.csv plots/list-cmp-intrl-shift-meta.dat
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-shift.gp
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-shift.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-shift.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,66 @@
+set terminal pdf color enhanced size 6.0in,3.0in font "Times,17"
+
+INDIR="build"
+OUTDIR="build"
+SRCDIR="plots"
+
+set output OUTDIR.'/plot-list-cmp-intrl-shift.pdf'
+
+set bmargin 6  # extra room at bottom for multiline x axis labels
+
+set xrange [1:9]
+set xlabel "Operation (movement / polarity / accessor)"  offset 0,-2,0
+set xtics offset 4.2,0
+
+set logscale y 2
+set yrange [0.75:1.8];
+set ytics ( \
+   "40%%" 1.666666667, \
+   "30%%" 1.428571429, \
+   "20%%" 1.25, \
+   "10%%" 1.111111111, \
+   "0%%" 1, \
+   "-10%%" 0.909090909, \
+   "-20%%" 0.833333333, \
+   "-30%%" 0.769230769, \
+)
+set ylabel "Duration (No-Interleave-Relative)"
+
+# Draw axis-like line at speedup=0% (y=1.0)
+set arrow from graph 0, first 1 to graph 1, first 1 nohead lt -1 lw 2
+
+set grid
+set key top center horizontal
+
+BOXSPACING=0.25
+BOXWIDTH=BOXSPACING * .90
+set boxwidth BOXWIDTH absolute
+
+NUM_FXS=4
+
+offset(opNum, fxNum) = opNum + fxNum * BOXSPACING - (NUM_FXS+1) * BOXSPACING / 2 + 0.5
+
+# One row, to plot one-off points
+$Singleton <<EOD
+0
+EOD
+
+# empty candlesticks for quantiles, then
+# varyiously styled points for means, then
+# x axis values, then
+# legend symbol augmentation
+plot INDIR.'/plot-list-cmp-intrl-shift.dat' \
+        using ($2 == 1 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'upp-upp' with candlesticks lt rgb "dark-orange", \
+     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'cfa-cfa' with candlesticks lt rgb "blue"	   , \
+     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-tailq' with candlesticks lt rgb "magenta"	, \
+     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-list' with candlesticks lt rgb "purple"	, \
+     '' using ($2 == 1 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 7  lt rgb "dark-orange", \
+     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 9  lt rgb "blue"	   , \
+     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 11 lt rgb "magenta"	, \
+     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 13 lt rgb "purple"	, \
+     SRCDIR.'/list-cmp-intrl-shift-meta.dat' \
+        using 1:(-999):xtic(2) notitle with points, \
+     $Singleton using (3.73):(1.69)                         notitle         with points pt 7  lt rgb "dark-orange", \
+     $Singleton using (5.44):(1.69)                         notitle         with points pt 9  lt rgb "blue"	   , \
+     $Singleton using (6.14):(1.69)                         notitle         with points pt 11 lt rgb "magenta" , \
+     $Singleton using (7.14):(1.69)                         notitle         with points pt 13 lt rgb "purple"
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-shift.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-shift.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-intrl-shift.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,17 @@
+import pandas as pd
+import numpy as np
+import os
+import sys
+
+sys.path.insert(0, os.path.dirname(__file__))
+from ListCommon import *
+
+thisPy = os.path.splitext(os.path.basename(__file__))[0]
+
+printManySummary(
+    infileLocal = 'results-general.csv',
+    metafileCore = thisPy,
+    fxs=['upp-upp', 'cfa-cfa', 'lq-tailq', 'lq-list'],
+    tgtInterleave = 0.5,
+    measure = 'OpDurRelIntrl'
+)
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-survey-meta.dat
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-survey-meta.dat	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-survey-meta.dat	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,8 @@
+1	stack\n*\n*
+2	queue\n*\n*
+3	*\ninsfirst\n*
+4	*\ninslast\n*
+5	*\n*\nallhead
+6	*\n*\ninselem
+7	*\n*\nremelem
+8	*\n*\n*
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-survey.d
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-survey.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-survey.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,2 @@
+plots/list-cmp-survey.gp.INPUTS: build/plot-list-cmp-survey.dat plots/list-cmp-survey-meta.dat | build
+plots/list-cmp-survey.py.INPUTS: benchmarks/list/results-general.csv plots/list-cmp-survey-meta.dat
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-survey.gp
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-survey.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-survey.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,63 @@
+set terminal pdf color enhanced size 6.0in,3.0in font "Times,17"
+
+INDIR="build"
+OUTDIR="build"
+SRCDIR="plots"
+
+set output OUTDIR.'/plot-list-cmp-survey.pdf'
+
+set bmargin 6  # extra room at bottom for multiline x axis labels
+
+set xrange [1:9]
+set xlabel "Operation (movement / polarity / accessor)"  offset 0,-2,0
+set xtics offset 4.2,0
+
+set logscale y 2
+set yrange [0.75:1.8];
+set ytics ( \
+   "+40%%" 1.666666667, \
+   "+30%%" 1.428571429, \
+   "+20%%" 1.25, \
+   "+10%%" 1.111111111, \
+   "0" 1, \
+   "-10%%" 0.909090909, \
+   "-20%%" 0.833333333, \
+   "-30%%" 0.769230769, \
+)
+set ylabel "Duration (tailq-Relative)"
+
+# Draw axis-like line at speedup=0% (y=1.0)
+set arrow from graph 0, first 1 to graph 1, first 1 nohead lt -1 lw 2
+
+set grid
+set key top center horizontal
+
+BOXSPACING=0.25
+BOXWIDTH=BOXSPACING * .88
+set boxwidth BOXWIDTH absolute
+
+NUM_FXS=3
+
+offset(opNum, fxNum) = opNum + fxNum * BOXSPACING - (NUM_FXS+1) * BOXSPACING / 2 + 0.5
+
+# One row, to plot one-off points
+$Singleton <<EOD
+0
+EOD
+
+# empty candlesticks for quantiles, then
+# varyiously styled points for means, then
+# x axis values, then
+# legend symbol augmentation
+plot INDIR.'/plot-list-cmp-survey.dat' \
+        using ($2 == 1 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'cfa-cfa' with candlesticks lt rgb "blue"	   , \
+     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'upp-upp' with candlesticks lt rgb "dark-orange", \
+     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-list' with candlesticks lt rgb "purple"	, \
+     '' using ($2 == 1 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 7  lt rgb "blue"	   , \
+     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 9  lt rgb "dark-orange", \
+     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 13 lt rgb "purple"	, \
+     SRCDIR.'/list-cmp-survey-meta.dat' \
+        using 1:(-999):xtic(2) notitle with points, \
+     $Singleton using (3.73):(1.69)                         notitle         with points pt 7  lt rgb "blue"	   , \
+     $Singleton using (5.44):(1.69)                         notitle         with points pt 9  lt rgb "dark-orange", \
+     $Singleton using (7.14):(1.69)                         notitle         with points pt 13 lt rgb "purple"
Index: doc/theses/mike_brooks_MMath/plots/list-cmp-survey.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-cmp-survey.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-cmp-survey.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,15 @@
+import pandas as pd
+import numpy as np
+import os
+import sys
+
+sys.path.insert(0, os.path.dirname(__file__))
+from ListCommon import *
+
+thisPy = os.path.splitext(os.path.basename(__file__))[0]
+
+printManySummary(
+    infileLocal = 'results-general.csv',
+    metafileCore = thisPy,
+    fxs=['cfa-cfa', 'upp-upp', 'lq-list']
+)
Index: doc/theses/mike_brooks_MMath/plots/list-zoomin-abs.d
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-zoomin-abs.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-zoomin-abs.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,2 @@
+plots/list-zoomin-abs.gp.INPUTS: build/plot-list-zoomin-abs.dat | build
+plots/list-zoomin-abs.py.INPUTS: benchmarks/list/results-general.csv
Index: doc/theses/mike_brooks_MMath/plots/list-zoomin-abs.gp
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-zoomin-abs.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-zoomin-abs.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,24 @@
+set terminal pdf color enhanced size 6.0in,3.0in font "Times,17"
+
+INDIR="build"
+OUTDIR="build"
+
+set macros
+set output OUTDIR."/plot-list-zoomin-abs.pdf"
+
+set grid
+set key top right
+set logscale x 2
+set logscale y
+set yrange [5:12.5];
+set ytics (6,7,8,9,10,11,12)
+set xrange [0.75:128];
+set xlabel "List length (item count)" offset 2,0
+set ylabel "Duration (ns)"
+set errorbars 2.0
+
+plot INDIR."/plot-list-zoomin-abs.dat" \
+       i 0 using ($1 * 0.98):8:4:5 title columnheader(1) with yerrorbars lt rgb "blue" 	      pt  7  ps 0.85 lw 1, \
+    '' i 9 using ($1 * 0.94):8:4:5 title columnheader(1) with yerrorbars lt rgb "dark-orange"	pt  9  ps 0.75 lw 1, \
+    '' i 8 using ($1 * 1.02):8:4:5 title columnheader(1) with yerrorbars lt rgb "magenta"	      pt  11 ps 0.85 lw 1, \
+    '' i 7 using ($1 * 1.06):8:4:5 title columnheader(1) with yerrorbars lt rgb "purple"	      pt  13 ps 1.0  lw 1
Index: doc/theses/mike_brooks_MMath/plots/list-zoomin-abs.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-zoomin-abs.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-zoomin-abs.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,20 @@
+import pandas as pd
+import numpy as np
+import os
+import sys
+
+sys.path.insert(0, os.path.dirname(__file__))
+from ListCommon import *
+
+printSingleDetail(
+    infileLocal='results-general.csv',
+    tgtMovement = 'stack',
+    tgtPolarity = 'insfirst',
+    tgtAccessor = 'allhead'
+
+
+    # tgtMovement = 'all',
+    # tgtPolarity = 'all',
+    # tgtAccessor = 'remelem',
+    # tgtInterleave = 0.5
+    )
Index: doc/theses/mike_brooks_MMath/plots/list-zoomin-rel.d
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-zoomin-rel.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-zoomin-rel.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,2 @@
+plots/list-zoomin-rel.gp.INPUTS: build/plot-list-zoomin-rel.dat | build
+plots/list-zoomin-rel.py.INPUTS: benchmarks/list/results-general.csv
Index: doc/theses/mike_brooks_MMath/plots/list-zoomin-rel.gp
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-zoomin-rel.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-zoomin-rel.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,36 @@
+set terminal pdf color enhanced size 6.0in,3.0in font "Times,17"
+
+INDIR="build"
+OUTDIR="build"
+
+set macros
+set output OUTDIR."/plot-list-zoomin-rel.pdf"
+
+set grid
+set key top right
+set logscale x 2
+set logscale y 2
+set yrange [0.85:1.33];
+set ytics ( \
+   "+40%%" 1.666666667, \
+   "+30%%" 1.428571429, \
+   "+20%%" 1.25, \
+   "+10%%" 1.111111111, \
+   "0" 1, \
+   "-10%%" 0.909090909, \
+   "-20%%" 0.833333333, \
+   "-30%%" 0.769230769, \
+)
+set xrange [0.75:128];
+set xlabel "List length (item count)" offset 2,0
+set ylabel "Duration (tailq-Relative)"
+set errorbars 2.0
+
+# Draw axis-like line at speedup=0% (y=1.0)
+set arrow from graph 0, first 1 to graph 1, first 1 nohead lt -1 lw 2
+
+plot INDIR."/plot-list-zoomin-rel.dat" \
+       i 0 using ($1 * 0.98):8:4:5 title columnheader(1) with yerrorbars lt rgb "blue" 	      pt  7  ps 0.85 lw 1, \
+    '' i 9 using ($1 * 0.94):8:4:5 title columnheader(1) with yerrorbars lt rgb "dark-orange"	pt  9  ps 0.75 lw 1, \
+    '' i 8 using ($1 * 1.02):8:4:5 title columnheader(1) with yerrorbars lt rgb "magenta"	      pt  11 ps 0.85 lw 1, \
+    '' i 7 using ($1 * 1.06):8:4:5 title columnheader(1) with yerrorbars lt rgb "purple"	      pt  13 ps 1.0  lw 1
Index: doc/theses/mike_brooks_MMath/plots/list-zoomin-rel.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-zoomin-rel.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-zoomin-rel.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,23 @@
+import pandas as pd
+import numpy as np
+import os
+import sys
+
+sys.path.insert(0, os.path.dirname(__file__))
+from ListCommon import *
+
+printSingleDetail(
+    infileLocal='results-general.csv',
+    tgtMovement = 'stack',
+    tgtPolarity = 'insfirst',
+    tgtAccessor = 'allhead',
+
+
+    # tgtMovement = 'all',
+    # tgtPolarity = 'all',
+    # tgtAccessor = 'remelem',
+    # tgtInterleave = 0.5,
+
+
+    measure='OpDurRelFx'
+)
Index: doc/theses/mike_brooks_MMath/plots/list-zoomout-noshuf.d
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-zoomout-noshuf.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-zoomout-noshuf.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,2 @@
+plots/list-zoomout-noshuf.gp.INPUTS: build/plot-list-zoomout-noshuf.dat | build
+plots/list-zoomout-noshuf.py.INPUTS: benchmarks/list/results-zoomout-noshuf.csv
Index: doc/theses/mike_brooks_MMath/plots/list-zoomout-noshuf.gp
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-zoomout-noshuf.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-zoomout-noshuf.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,24 @@
+set terminal pdf color enhanced size 6.0in,3.0in font "Times,17"
+
+INDIR="build"
+OUTDIR="build"
+
+set macros
+set output OUTDIR."/plot-list-zoomout-noshuf.pdf"
+
+set grid
+set key top left
+set logscale x
+set logscale y
+set yrange [4:200];
+set xlabel "List length (item count)" offset 2,0
+set ylabel "Duration (ns)"
+set linetype 3 dashtype 2
+set linetype 4 dashtype 2
+
+plot INDIR."/plot-list-zoomout-noshuf.dat" \
+       i 2 using 1:2 title "STL" with points lt rgb "forest-green"	pt  3 ps 1 lw 1, \
+    '' i 0 using 1:2 title "intrusives" with points lt rgb "black"	pt  1 ps 1 lw 1, \
+    '' i 1 using 1:2 notitle with points lt rgb "black"	    pt  1 ps 1 lw 1, \
+    '' i 3 using 1:2 notitle with points lt rgb "black"	pt  1 ps 1 lw 1, \
+    '' i 4 using 1:2 notitle with points lt rgb "black"	pt  1  ps 1 lw 1
Index: doc/theses/mike_brooks_MMath/plots/list-zoomout-noshuf.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-zoomout-noshuf.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-zoomout-noshuf.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,13 @@
+import pandas as pd
+import numpy as np
+import os
+import sys
+
+sys.path.insert(0, os.path.dirname(__file__))
+from ListCommon import *
+
+printSingleDetail(
+    infileLocal='results-zoomout-noshuf.csv',
+    tgtMovement = 'stack',
+    tgtPolarity = 'insfirst',
+    tgtAccessor = 'allhead')
Index: doc/theses/mike_brooks_MMath/plots/list-zoomout-shuf.d
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-zoomout-shuf.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-zoomout-shuf.d	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,2 @@
+plots/list-zoomout-shuf.gp.INPUTS: build/plot-list-zoomout-shuf.dat | build
+plots/list-zoomout-shuf.py.INPUTS: benchmarks/list/results-zoomout-shuf.csv
Index: doc/theses/mike_brooks_MMath/plots/list-zoomout-shuf.gp
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-zoomout-shuf.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-zoomout-shuf.gp	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,24 @@
+set terminal pdf color enhanced size 6.0in,3.0in font "Times,17"
+
+INDIR="build"
+OUTDIR="build"
+
+set macros
+set output OUTDIR."/plot-list-zoomout-shuf.pdf"
+
+set grid
+set key top left
+set logscale x
+set logscale y
+set yrange [4:200];
+set xlabel "List length (item count)" offset 2,0
+set ylabel "Duration (ns)"
+set linetype 3 dashtype 2
+set linetype 4 dashtype 2
+
+plot INDIR."/plot-list-zoomout-shuf.dat" \
+       i 2 using 1:2 title "STL" with points lt rgb "forest-green"	pt  3 ps 1 lw 1, \
+    '' i 0 using 1:2 title "intrusives" with points lt rgb "black"	pt  1 ps 1 lw 1, \
+    '' i 1 using 1:2 notitle with points lt rgb "black"	    pt  1 ps 1 lw 1, \
+    '' i 3 using 1:2 notitle with points lt rgb "black"	pt  1 ps 1 lw 1, \
+    '' i 4 using 1:2 notitle with points lt rgb "black"	pt  1  ps 1 lw 1
Index: doc/theses/mike_brooks_MMath/plots/list-zoomout-shuf.py
===================================================================
--- doc/theses/mike_brooks_MMath/plots/list-zoomout-shuf.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
+++ doc/theses/mike_brooks_MMath/plots/list-zoomout-shuf.py	(revision 16a843baca3bf6cd68c2b4cab71c5bc9d477afd8)
@@ -0,0 +1,13 @@
+import pandas as pd
+import numpy as np
+import os
+import sys
+
+sys.path.insert(0, os.path.dirname(__file__))
+from ListCommon import *
+
+printSingleDetail(
+    infileLocal='results-zoomout-shuf.csv',
+    tgtMovement = 'stack',
+    tgtPolarity = 'insfirst',
+    tgtAccessor = 'allhead')
