Stadium relaunch: full 127-page deep-dive report -- per-cell, per-ISA,

every factor interaction, and a raw-data appendix

Expanded the campaign-mechanism validation report from a condensed
6-page summary into the full depth Captain Bob asked for: analyze all 9
cells as a conglomerate Latin square, then dive into each cell's own
data, then cover every within-ISA and cross-factor interaction
explicitly rather than averaging it away.

Report structure (127 pages, compiled clean, no undefined references):
- Front matter: context, methodology, the SWAP-MTX bug narrative
  (console-interleaving fix + the Fisher-Yates correctness bug and its
  fix, both already committed separately)
- Layer 1: aggregate 3x3 Latin square (heatmap, invariant-metrics table)
- Per-Cell Deep Dive (9 sections): cfg-level distribution, summary
  table, and a rep-order execution-trajectory chart per cell -- the
  trajectory charts are what actually visualize the order-dependence
  finding rather than just stating it
- Per-ISA Deep Dive (3 sections): within-architecture seed comparison
  (violin plots, Kruskal-Wallis, per-factor main effects)
- Factor Interactions (6 sections, every pairwise combination of the 4
  L8 binary factors): both infer_dec_q and early_exit interaction plots
  faceted by architecture, plus the three-way
  factor x factor x architecture significance test
- Per-Factor Response (4 sections): linear response by architecture,
  with an explicit note that a true quadratic term isn't identifiable
  from this 2-level factorial design
- Appendix: full run_id-ordered raw data, all 4,320 rows across all 9
  cells, as the primary-source backing for every statistic above

Generated programmatically (analyse_stadium_relaunch_fixed.R for the
aggregate layer, generate_stadium_deepdive.R for the per-cell/per-ISA/
interaction/appendix layers) rather than hand-authored, since content at
this scale needs to be data-driven to stay honest.

Also includes analyse_stadium_relaunch.R, the earlier script built
against the pre-fix (buggy-shuffle) dataset -- superseded but kept for
the record, matching how the underlying data commits were handled.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-08-20 13:10:01 -04:00
co-authored by Claude Sonnet 5
parent dbe4b671a1
commit cf5b08fb65
140 changed files with 18891 additions and 0 deletions
@@ -0,0 +1,184 @@
<?xml version='1.0' encoding='UTF-8' ?>
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='864.00pt' height='432.00pt' viewBox='0 0 864.00 432.00'>
<g class='svglite'>
<defs>
<style type='text/css'><![CDATA[
.svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {
fill: none;
stroke: #000000;
stroke-linecap: round;
stroke-linejoin: round;
stroke-miterlimit: 10.00;
}
.svglite text {
white-space: pre;
}
.svglite g.glyphgroup path {
fill: inherit;
stroke: none;
}
]]></style>
</defs>
<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/>
<defs>
<clipPath id='cpMC4wMHw4NjQuMDB8MC4wMHw0MzIuMDA='>
<rect x='0.00' y='0.00' width='864.00' height='432.00' />
</clipPath>
</defs>
<g clip-path='url(#cpMC4wMHw4NjQuMDB8MC4wMHw0MzIuMDA=)'>
<rect x='0.00' y='0.000000000000057' width='864.00' height='432.00' style='stroke-width: 1.07; stroke: none; fill: #0D0D0D;' />
</g>
<defs>
<clipPath id='cpMzUuMjV8MzA2LjAyfDM0LjE0fDM2My4wNg=='>
<rect x='35.25' y='34.14' width='270.77' height='328.92' />
</clipPath>
</defs>
<g clip-path='url(#cpMzUuMjV8MzA2LjAyfDM0LjE0fDM2My4wNg==)'>
<rect x='35.25' y='34.14' width='270.77' height='328.92' style='stroke-width: 1.07; stroke: none; fill: #0D0D0D;' />
<polyline points='35.25,261.27 306.02,261.27 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='35.25,155.31 306.02,155.31 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='35.25,49.35 306.02,49.35 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='109.10,363.06 109.10,34.14 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='232.17,363.06 232.17,34.14 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='109.10,150.89 232.17,181.21 ' style='stroke-width: 2.13; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='109.10,224.19 232.17,245.82 ' style='stroke-width: 2.13; stroke: #4A90D9; stroke-linecap: butt;' />
<circle cx='109.10' cy='150.89' r='3.02' style='stroke-width: 0.71; stroke: #D62728; fill: #D62728;' />
<circle cx='232.17' cy='181.21' r='3.02' style='stroke-width: 0.71; stroke: #D62728; fill: #D62728;' />
<circle cx='109.10' cy='224.19' r='3.02' style='stroke-width: 0.71; stroke: #4A90D9; fill: #4A90D9;' />
<circle cx='232.17' cy='245.82' r='3.02' style='stroke-width: 0.71; stroke: #4A90D9; fill: #4A90D9;' />
<polyline points='102.94,49.09 115.25,49.09 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='109.10,49.09 109.10,252.70 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='102.94,252.70 115.25,252.70 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='226.02,80.39 238.33,80.39 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='232.17,80.39 232.17,282.04 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='226.02,282.04 238.33,282.04 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='102.94,120.95 115.25,120.95 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='109.10,120.95 109.10,327.43 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='102.94,327.43 115.25,327.43 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='226.02,143.53 238.33,143.53 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='232.17,143.53 232.17,348.11 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='226.02,348.11 238.33,348.11 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
</g>
<g clip-path='url(#cpMC4wMHw4NjQuMDB8MC4wMHw0MzIuMDA=)'>
</g>
<defs>
<clipPath id='cpMzExLjUwfDU4Mi4yN3wzNC4xNHwzNjMuMDY='>
<rect x='311.50' y='34.14' width='270.77' height='328.92' />
</clipPath>
</defs>
<g clip-path='url(#cpMzExLjUwfDU4Mi4yN3wzNC4xNHwzNjMuMDY=)'>
<rect x='311.50' y='34.14' width='270.77' height='328.92' style='stroke-width: 1.07; stroke: none; fill: #0D0D0D;' />
<polyline points='311.50,261.27 582.27,261.27 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='311.50,155.31 582.27,155.31 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='311.50,49.35 582.27,49.35 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='385.35,363.06 385.35,34.14 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='508.42,363.06 508.42,34.14 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='385.35,150.89 508.42,181.21 ' style='stroke-width: 2.13; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='385.35,224.19 508.42,245.82 ' style='stroke-width: 2.13; stroke: #4A90D9; stroke-linecap: butt;' />
<circle cx='385.35' cy='150.89' r='3.02' style='stroke-width: 0.71; stroke: #D62728; fill: #D62728;' />
<circle cx='508.42' cy='181.21' r='3.02' style='stroke-width: 0.71; stroke: #D62728; fill: #D62728;' />
<circle cx='385.35' cy='224.19' r='3.02' style='stroke-width: 0.71; stroke: #4A90D9; fill: #4A90D9;' />
<circle cx='508.42' cy='245.82' r='3.02' style='stroke-width: 0.71; stroke: #4A90D9; fill: #4A90D9;' />
<polyline points='379.19,49.09 391.50,49.09 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='385.35,49.09 385.35,252.70 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='379.19,252.70 391.50,252.70 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='502.27,80.39 514.58,80.39 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='508.42,80.39 508.42,282.04 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='502.27,282.04 514.58,282.04 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='379.19,120.95 391.50,120.95 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='385.35,120.95 385.35,327.43 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='379.19,327.43 391.50,327.43 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='502.27,143.53 514.58,143.53 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='508.42,143.53 508.42,348.11 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='502.27,348.11 514.58,348.11 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
</g>
<g clip-path='url(#cpMC4wMHw4NjQuMDB8MC4wMHw0MzIuMDA=)'>
</g>
<defs>
<clipPath id='cpNTg3Ljc1fDg1OC41MnwzNC4xNHwzNjMuMDY='>
<rect x='587.75' y='34.14' width='270.77' height='328.92' />
</clipPath>
</defs>
<g clip-path='url(#cpNTg3Ljc1fDg1OC41MnwzNC4xNHwzNjMuMDY=)'>
<rect x='587.75' y='34.14' width='270.77' height='328.92' style='stroke-width: 1.07; stroke: none; fill: #0D0D0D;' />
<polyline points='587.75,261.27 858.52,261.27 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='587.75,155.31 858.52,155.31 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='587.75,49.35 858.52,49.35 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='661.60,363.06 661.60,34.14 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='784.67,363.06 784.67,34.14 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='661.60,150.89 784.67,181.21 ' style='stroke-width: 2.13; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='661.60,224.19 784.67,245.82 ' style='stroke-width: 2.13; stroke: #4A90D9; stroke-linecap: butt;' />
<circle cx='661.60' cy='150.89' r='3.02' style='stroke-width: 0.71; stroke: #D62728; fill: #D62728;' />
<circle cx='784.67' cy='181.21' r='3.02' style='stroke-width: 0.71; stroke: #D62728; fill: #D62728;' />
<circle cx='661.60' cy='224.19' r='3.02' style='stroke-width: 0.71; stroke: #4A90D9; fill: #4A90D9;' />
<circle cx='784.67' cy='245.82' r='3.02' style='stroke-width: 0.71; stroke: #4A90D9; fill: #4A90D9;' />
<polyline points='655.44,49.09 667.75,49.09 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='661.60,49.09 661.60,252.70 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='655.44,252.70 667.75,252.70 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='778.52,80.39 790.83,80.39 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='784.67,80.39 784.67,282.04 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='778.52,282.04 790.83,282.04 ' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<polyline points='655.44,120.95 667.75,120.95 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='661.60,120.95 661.60,327.43 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='655.44,327.43 667.75,327.43 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='778.52,143.53 790.83,143.53 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='784.67,143.53 784.67,348.11 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='778.52,348.11 790.83,348.11 ' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
</g>
<g clip-path='url(#cpMC4wMHw4NjQuMDB8MC4wMHw0MzIuMDA=)'>
</g>
<defs>
<clipPath id='cpMzUuMjV8MzA2LjAyfDI0LjI5fDM0LjE0'>
<rect x='35.25' y='24.29' width='270.77' height='9.85' />
</clipPath>
</defs>
<g clip-path='url(#cpMzUuMjV8MzA2LjAyfDI0LjI5fDM0LjE0)'>
<text x='170.64' y='32.99' text-anchor='middle' style='font-size: 11.00px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='34.88px' lengthAdjust='spacingAndGlyphs'>amd64</text>
</g>
<g clip-path='url(#cpMC4wMHw4NjQuMDB8MC4wMHw0MzIuMDA=)'>
</g>
<defs>
<clipPath id='cpMzExLjUwfDU4Mi4yN3wyNC4yOXwzNC4xNA=='>
<rect x='311.50' y='24.29' width='270.77' height='9.85' />
</clipPath>
</defs>
<g clip-path='url(#cpMzExLjUwfDU4Mi4yN3wyNC4yOXwzNC4xNA==)'>
<text x='446.89' y='32.99' text-anchor='middle' style='font-size: 11.00px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='41.62px' lengthAdjust='spacingAndGlyphs'>aarch64</text>
</g>
<g clip-path='url(#cpMC4wMHw4NjQuMDB8MC4wMHw0MzIuMDA=)'>
</g>
<defs>
<clipPath id='cpNTg3Ljc1fDg1OC41MnwyNC4yOXwzNC4xNA=='>
<rect x='587.75' y='24.29' width='270.77' height='9.85' />
</clipPath>
</defs>
<g clip-path='url(#cpNTg3Ljc1fDg1OC41MnwyNC4yOXwzNC4xNA==)'>
<text x='723.14' y='32.99' text-anchor='middle' style='font-size: 11.00px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='37.97px' lengthAdjust='spacingAndGlyphs'>riscv64</text>
</g>
<g clip-path='url(#cpMC4wMHw4NjQuMDB8MC4wMHw0MzIuMDA=)'>
<text x='109.10' y='375.56' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='8.56px' lengthAdjust='spacingAndGlyphs'>hi</text>
<text x='232.17' y='375.56' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='8.56px' lengthAdjust='spacingAndGlyphs'>lo</text>
<text x='385.35' y='375.56' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='8.56px' lengthAdjust='spacingAndGlyphs'>hi</text>
<text x='508.42' y='375.56' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='8.56px' lengthAdjust='spacingAndGlyphs'>lo</text>
<text x='661.60' y='375.56' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='8.56px' lengthAdjust='spacingAndGlyphs'>hi</text>
<text x='784.67' y='375.56' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='8.56px' lengthAdjust='spacingAndGlyphs'>lo</text>
<text x='30.32' y='265.06' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='12.25px' lengthAdjust='spacingAndGlyphs'>42</text>
<text x='30.32' y='159.09' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='12.25px' lengthAdjust='spacingAndGlyphs'>44</text>
<text x='30.32' y='53.13' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='12.25px' lengthAdjust='spacingAndGlyphs'>46</text>
<text x='446.89' y='388.15' text-anchor='middle' style='font-size: 11.00px;fill: #CCCCCC; font-family: "Liberation Sans";' textLength='106.44px' lengthAdjust='spacingAndGlyphs'>temporal-decay factor</text>
<text transform='translate(13.05,198.60) rotate(-90)' text-anchor='middle' style='font-size: 11.00px;fill: #CCCCCC; font-family: "Liberation Sans";' textLength='88.12px' lengthAdjust='spacingAndGlyphs'>mean infer_dec_q</text>
<rect x='374.06' y='401.39' width='145.66' height='25.13' style='stroke-width: 1.07; stroke: none; fill: #0D0D0D;' />
<text x='379.53' y='417.74' style='font-size: 11.00px;fill: #CCCCCC; font-family: "Liberation Sans";' textLength='67.31px' lengthAdjust='spacingAndGlyphs'>entropy factor</text>
<line x1='453.74' y1='413.95' x2='465.08' y2='413.95' style='stroke-width: 2.13; stroke: #D62728; stroke-linecap: butt;' />
<circle cx='459.41' cy='413.95' r='3.02' style='stroke-width: 0.71; stroke: #D62728; fill: #D62728;' />
<line x1='453.74' y1='413.95' x2='465.08' y2='413.95' style='stroke-width: 1.07; stroke: #D62728; stroke-linecap: butt;' />
<line x1='487.44' y1='413.95' x2='498.78' y2='413.95' style='stroke-width: 2.13; stroke: #4A90D9; stroke-linecap: butt;' />
<circle cx='493.11' cy='413.95' r='3.02' style='stroke-width: 0.71; stroke: #4A90D9; fill: #4A90D9;' />
<line x1='487.44' y1='413.95' x2='498.78' y2='413.95' style='stroke-width: 1.07; stroke: #4A90D9; stroke-linecap: butt;' />
<text x='471.98' y='417.74' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='8.56px' lengthAdjust='spacingAndGlyphs'>hi</text>
<text x='505.67' y='417.74' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='8.56px' lengthAdjust='spacingAndGlyphs'>lo</text>
<text x='446.89' y='23.35' text-anchor='middle' style='font-size: 9.00px;fill: #666666; font-family: "Liberation Sans";' textLength='366.84px' lengthAdjust='spacingAndGlyphs'>Non-parallel lines = interaction effect; divergence across panels = ISA-dependent interaction</text>
<text x='446.89' y='14.98' text-anchor='middle' style='font-size: 12.00px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='285.28px' lengthAdjust='spacingAndGlyphs'>ent_in x tmp_in Interaction on infer_dec_q, by ISA</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB