Fix SWAP-MTX: Fisher-Yates shuffle was never actually shuffling correctly

Found while building the analysis report for the ACL-RWT relaunch
campaign: cfg=0 was missing from run coverage for 2 of 3 seeds, reproduced
identically across all three architectures. Root-caused rather than
worked around, per Captain Bob's "this is worrisome."

SWAP-MTX (capsules/doe.4th Block 2104) never actually swapped two
RUN-MATRIX cells -- it performed a lossy one-way copy (second MATRIX!
call mis-targeted mat[i] again instead of mat[j]). Confirmed by direct
empirical test on the hosted build: INIT-MATRIX gives mat[0]=0, mat[5]=5;
after 0 5 SWAP-MTX, mat[0]=0 (unchanged, should be 5) and mat[5]=0
(correct), with the original value 5 permanently destroyed. Every
Fisher-Yates shuffle this mechanism has ever run silently duplicated some
values and dropped others -- not a true permutation. Not new, not
introduced by item 4.6/Stadium work; predates this session.

Fixed with explicit temp variables (SW-I/SW-J/SW-VI/SW-VJ), trivially
verifiable by inspection over clever stack juggling. Verified on the
hosted build for all three seeds used by the relaunch campaign: each now
produces all 16 cfg values exactly 30 times, run_id 0-479 fully distinct.
Three-arch QEMU acceptance clean: 1012/0/0 POST on all three, identical
dict_hash (expected -- doe.4th isn't C-registered or auto-loaded at
boot). BLOCK_MAP.md correctly shows only doe.4th's own hash changed.

Also includes the R analysis/chart pipeline (analyse_stadium_relaunch.R)
built for the relaunch campaign report, and the three acceptance boot
logs.

Retroactive caveat: the relaunch campaign's own run-matrix coverage
(experiments/bare_metal/runs/acl-rwt-20260820/) is not a valid uniform
permutation, having run against the buggy shuffle. Whether to re-run it
against the fix is a separate call, not made here.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-08-20 10:56:12 -04:00
co-authored by Claude Sonnet 5
parent 79d160c1ca
commit 7e2fd9f044
23 changed files with 44760 additions and 13 deletions
@@ -0,0 +1,229 @@
#!/usr/bin/env Rscript
# analyse_stadium_relaunch.R
# StarForth LithosAnanke — EXEC-DOE 3x3 Latin square campaign,
# re-run on the post-item-4.6 Stadium substrate (2026-08-20).
#
# Generates figures + tables for stadium_relaunch_report.tex
#
# Data source: runs/acl-rwt-20260820/{arch}-seed{seed}.csv
# 9 cells: {amd64,aarch64,riscv64} x {12345,67890,13579}
# 480 rows/cell (16 L8 configs x 30 reps, Fisher-Yates shuffled)
#
# Scope note: this campaign validates that the EXEC-DOE mechanism runs
# cleanly and completely on the Stadium substrate (item 5.1's own concern:
# "a green POST suite is not evidence that determinism holds"). It is NOT
# an ACL-RWT overhead measurement -- ACL.4th is not self-activated in this
# repo's default init.4th, so these cells ran with ACL inactive.
suppressPackageStartupMessages({
library(ggplot2)
library(svglite)
library(dplyr)
library(tidyr)
library(scales)
library(patchwork)
})
SCRIPT_DIR <- tryCatch(
dirname(normalizePath(sys.frames()[[1]]$ofile)),
error = function(e) getwd()
)
BASE_DIR <- normalizePath(file.path(SCRIPT_DIR, ".."))
RUNS_DIR <- file.path(BASE_DIR, "runs", "acl-rwt-20260820")
OUT_CHARTS <- file.path(SCRIPT_DIR, "charts")
OUT_TABLES <- file.path(SCRIPT_DIR, "tables")
dir.create(OUT_CHARTS, showWarnings = FALSE, recursive = TRUE)
dir.create(OUT_TABLES, showWarnings = FALSE, recursive = TRUE)
cat("══════════════════════════════════════════════════════════════════\n")
cat(" StarForth LithosAnanke — Stadium-substrate EXEC-DOE relaunch\n")
cat(" Item 5.1 / F.3 — campaign-mechanism validation, 2026-08-20\n")
cat("══════════════════════════════════════════════════════════════════\n\n")
# ── palette (matches analyse_acl_rwt.R) ───────────────────────────────────────
arch_colours <- c(amd64 = "#E07B39",
aarch64 = "#4A90D9",
riscv64 = "#50C878")
theme_light_sf <- function(base = 11) {
theme_minimal(base_size = base) %+replace% theme(
panel.grid.minor = element_blank(),
panel.grid.major = element_line(colour = "grey90"),
strip.text = element_text(face = "bold"),
plot.title = element_text(face = "bold", size = base + 1),
plot.subtitle = element_text(colour = "grey40", size = base - 2),
legend.position = "bottom",
legend.key.size = unit(0.5, "cm")
)
}
theme_dark_sf <- function(base = 11) {
theme_minimal(base_size = base) %+replace% theme(
panel.background = element_rect(fill = "#0d0d0d", colour = NA),
plot.background = element_rect(fill = "#0d0d0d", colour = NA),
panel.grid.major = element_line(colour = "#1e1e1e"),
panel.grid.minor = element_blank(),
axis.text = element_text(colour = "#aaaaaa"),
axis.title = element_text(colour = "#cccccc"),
strip.text = element_text(colour = "white", face = "bold"),
plot.title = element_text(colour = "white", face = "bold", size = base + 1),
plot.subtitle = element_text(colour = "#666666", size = base - 2),
legend.text = element_text(colour = "#aaaaaa"),
legend.title = element_text(colour = "#cccccc"),
legend.background = element_rect(fill = "#0d0d0d", colour = NA),
legend.position = "bottom",
legend.key.size = unit(0.5, "cm")
)
}
save_svg <- function(plot, name, w = 12, h = 7) {
path <- file.path(OUT_CHARTS, paste0(name, ".svg"))
svglite(path, width = w, height = h)
print(plot)
dev.off()
cat(sprintf(" Saved: %s.svg\n", name))
invisible(path)
}
# ── load data ──────────────────────────────────────────────────────────────
col_names <- c("run_id", "cfg", "rep", "ent_in", "cv_in", "tmp_in", "stb_in",
"l8_mode", "win_div", "infer_win", "infer_dec_q", "infer_var_q",
"early_exit", "bc_mean_q", "bb_mean_q", "fit_q")
archs <- c("amd64", "aarch64", "riscv64")
seeds <- c("12345", "67890", "13579")
load_cell <- function(arch, seed) {
f <- file.path(RUNS_DIR, sprintf("%s-seed%s.csv", arch, seed))
raw <- readLines(f)
data_lines <- raw[grepl("^[0-9]", raw)]
df <- read.csv(text = paste(data_lines, collapse = "\n"),
header = FALSE, col.names = col_names,
strip.white = TRUE)
df$arch <- arch
df$seed <- seed
df
}
cat("Loading 9 cells...\n")
all_data <- bind_rows(lapply(archs, function(a) {
bind_rows(lapply(seeds, function(s) load_cell(a, s)))
}))
cat(sprintf(" Total rows loaded: %d (expect 4320)\n", nrow(all_data)))
# ── per-cell completeness table ───────────────────────────────────────────
cell_summary <- all_data %>%
group_by(arch, seed) %>%
summarise(
n_rows = n(),
n_distinct_run_id = n_distinct(run_id),
l8_modes = n_distinct(l8_mode),
mean_win_div = mean(win_div),
mean_fit_q = mean(fit_q),
mean_bc_mean_q = mean(bc_mean_q),
mean_bb_mean_q = mean(bb_mean_q),
.groups = "drop"
)
cell_summary$arch <- factor(cell_summary$arch, levels = archs)
write.csv(cell_summary, file.path(OUT_TABLES, "stadium_relaunch_cell_summary.csv"),
row.names = FALSE)
cat("\nCell summary:\n")
print(as.data.frame(cell_summary))
# ── cross-arch / cross-seed invariance tests (Kruskal-Wallis, matches the
# original report's own non-parametric methodology for this kind of
# campaign-level distributional comparison) ─────────────────────────────
kw_arch_fit <- kruskal.test(fit_q ~ arch, data = all_data)
kw_arch_win <- kruskal.test(win_div ~ arch, data = all_data)
kw_seed_fit <- kruskal.test(fit_q ~ seed, data = all_data)
kw_seed_win <- kruskal.test(win_div ~ seed, data = all_data)
kw_results <- capture.output({
cat("Kruskal-Wallis: fit_q ~ arch\n"); print(kw_arch_fit); cat("\n")
cat("Kruskal-Wallis: win_div ~ arch\n"); print(kw_arch_win); cat("\n")
cat("Kruskal-Wallis: fit_q ~ seed\n"); print(kw_seed_fit); cat("\n")
cat("Kruskal-Wallis: win_div ~ seed\n"); print(kw_seed_win); cat("\n")
})
writeLines(kw_results, file.path(OUT_TABLES, "stadium_relaunch_kw_results.txt"))
cat("\n")
cat(paste(kw_results, collapse = "\n"))
cat("\n\n")
# ══════════════════════════════════════════════════════════════════════════
# FIGURE 1: 3x3 Latin square completeness heatmap (rows captured per cell)
# ══════════════════════════════════════════════════════════════════════════
cat("[SR-1] Completeness heatmap (light + dark)...\n")
df_heat <- cell_summary %>% mutate(seed = factor(seed, levels = seeds))
make_heatmap <- function(dark = FALSE) {
thm <- if (dark) theme_dark_sf() else theme_light_sf()
txt <- if (dark) "white" else "grey10"
ggplot(df_heat, aes(x = seed, y = arch, fill = n_rows)) +
geom_tile(colour = if (dark) "#0d0d0d" else "white", linewidth = 1.5) +
geom_text(aes(label = sprintf("%d/480", n_rows)), colour = txt,
fontface = "bold", size = 4.2) +
scale_fill_gradient(low = "#c0392b", high = "#2CA02C", limits = c(0, 480),
name = "Rows captured") +
labs(
title = "EXEC-DOE Campaign Completeness — Stadium Substrate",
subtitle = "3x3 Latin square: 3 seeds x 3 ISAs, 30 reps x 16 L8 configs per cell (480 rows/cell)",
x = "Seed", y = "Architecture"
) +
thm
}
save_svg(make_heatmap(FALSE), "stadium_relaunch_completeness_light", w = 9, h = 6)
save_svg(make_heatmap(TRUE), "stadium_relaunch_completeness_dark", w = 9, h = 6)
# ══════════════════════════════════════════════════════════════════════════
# FIGURE 2: fit_q distribution by architecture (all seeds pooled)
# ══════════════════════════════════════════════════════════════════════════
cat("[SR-2] fit_q distribution by architecture (light + dark)...\n")
all_data$arch <- factor(all_data$arch, levels = archs)
make_fit_box <- function(dark = FALSE) {
thm <- if (dark) theme_dark_sf() else theme_light_sf()
ggplot(all_data, aes(x = arch, y = fit_q, fill = arch)) +
geom_boxplot(alpha = 0.85, outlier.size = 0.6, outlier.alpha = 0.4) +
scale_fill_manual(values = arch_colours, guide = "none") +
scale_x_discrete(labels = c(amd64 = "amd64\n(x86-64)",
aarch64 = "aarch64\n(ARMv8-A)",
riscv64 = "riscv64\n(RV64GC)")) +
labs(
title = "Inference-Fit Distribution Across ISAs",
subtitle = sprintf(
"Kruskal-Wallis fit_q ~ arch: H=%.3f, p=%.4f (all 4,320 rows, 3 seeds pooled per ISA)",
kw_arch_fit$statistic, kw_arch_fit$p.value
),
x = "Instruction-Set Architecture", y = "fit_q (Q16 fixed-point)"
) +
thm
}
save_svg(make_fit_box(FALSE), "stadium_relaunch_fitq_box_light", w = 9, h = 6)
save_svg(make_fit_box(TRUE), "stadium_relaunch_fitq_box_dark", w = 9, h = 6)
# ══════════════════════════════════════════════════════════════════════════
# FIGURE 3: mean win_div per (arch, seed) cell — grouped bar
# ══════════════════════════════════════════════════════════════════════════
cat("[SR-3] Mean window-diversity per cell (light + dark)...\n")
df_bar <- cell_summary %>% mutate(seed = factor(seed, levels = seeds))
make_windiv_bar <- function(dark = FALSE) {
thm <- if (dark) theme_dark_sf() else theme_light_sf()
ggplot(df_bar, aes(x = seed, y = mean_win_div, fill = arch)) +
geom_col(position = position_dodge(width = 0.75), width = 0.65,
colour = NA, alpha = 0.92) +
scale_fill_manual(values = arch_colours, name = "ISA") +
labs(
title = "Mean Window-Diversity per Campaign Cell",
subtitle = "9 cells, 480 runs each, Stadium substrate (post item-4.6 quota-grant fix)",
x = "Seed", y = "Mean win_div"
) +
thm
}
save_svg(make_windiv_bar(FALSE), "stadium_relaunch_windiv_bar_light", w = 9, h = 6)
save_svg(make_windiv_bar(TRUE), "stadium_relaunch_windiv_bar_dark", w = 9, h = 6)
cat("\nDone. Tables in analysis/tables/, charts in analysis/charts/.\n")
@@ -0,0 +1,94 @@
<?xml version='1.0' encoding='UTF-8' ?>
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='648.00pt' height='432.00pt' viewBox='0 0 648.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='cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA='>
<rect x='0.00' y='0.00' width='648.00' height='432.00' />
</clipPath>
</defs>
<g clip-path='url(#cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA=)'>
<rect x='0.00' y='0.000000000000057' width='648.00' height='432.00' style='stroke-width: 1.07; stroke: none; fill: #0D0D0D;' />
</g>
<defs>
<clipPath id='cpNjIuNzh8NjQyLjUyfDI0LjI5fDM0Ny43Mw=='>
<rect x='62.78' y='24.29' width='579.74' height='323.44' />
</clipPath>
</defs>
<g clip-path='url(#cpNjIuNzh8NjQyLjUyfDI0LjI5fDM0Ny43Mw==)'>
<rect x='62.78' y='24.29' width='579.74' height='323.44' style='stroke-width: 1.07; stroke: none; fill: #0D0D0D;' />
<polyline points='62.78,287.08 642.52,287.08 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='62.78,186.01 642.52,186.01 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='62.78,84.93 642.52,84.93 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='171.48,347.73 171.48,24.29 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='352.65,347.73 352.65,24.29 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='533.82,347.73 533.82,24.29 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<rect x='80.90' y='135.47' width='181.17' height='101.08' style='stroke-width: 3.20; stroke: #0D0D0D; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='443.24' y='135.47' width='181.17' height='101.08' style='stroke-width: 3.20; stroke: #0D0D0D; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='262.07' y='135.47' width='181.17' height='101.08' style='stroke-width: 3.20; stroke: #0D0D0D; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='80.90' y='236.55' width='181.17' height='101.08' style='stroke-width: 3.20; stroke: #0D0D0D; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='443.24' y='236.55' width='181.17' height='101.08' style='stroke-width: 3.20; stroke: #0D0D0D; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='262.07' y='236.55' width='181.17' height='101.08' style='stroke-width: 3.20; stroke: #0D0D0D; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='80.90' y='34.39' width='181.17' height='101.08' style='stroke-width: 3.20; stroke: #0D0D0D; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='443.24' y='34.39' width='181.17' height='101.08' style='stroke-width: 3.20; stroke: #0D0D0D; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='262.07' y='34.39' width='181.17' height='101.08' style='stroke-width: 3.20; stroke: #0D0D0D; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<text x='171.48' y='190.12' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='533.82' y='190.12' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='352.65' y='190.12' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='171.48' y='291.19' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='533.82' y='291.19' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='352.65' y='291.19' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='171.48' y='89.04' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='533.82' y='89.04' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='352.65' y='89.04' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
</g>
<g clip-path='url(#cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA=)'>
<text x='57.85' y='290.87' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='33.66px' lengthAdjust='spacingAndGlyphs'>amd64</text>
<text x='57.85' y='189.79' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='39.78px' lengthAdjust='spacingAndGlyphs'>aarch64</text>
<text x='57.85' y='88.72' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='34.84px' lengthAdjust='spacingAndGlyphs'>riscv64</text>
<text x='171.48' y='360.23' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='30.62px' lengthAdjust='spacingAndGlyphs'>12345</text>
<text x='352.65' y='360.23' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='30.62px' lengthAdjust='spacingAndGlyphs'>67890</text>
<text x='533.82' y='360.23' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='30.62px' lengthAdjust='spacingAndGlyphs'>13579</text>
<text x='352.65' y='372.82' text-anchor='middle' style='font-size: 11.00px;fill: #CCCCCC; font-family: "Liberation Sans";' textLength='25.72px' lengthAdjust='spacingAndGlyphs'>Seed</text>
<text transform='translate(13.05,186.01) rotate(-90)' text-anchor='middle' style='font-size: 11.00px;fill: #CCCCCC; font-family: "Liberation Sans";' textLength='58.72px' lengthAdjust='spacingAndGlyphs'>Architecture</text>
<rect x='272.30' y='386.06' width='160.71' height='40.46' style='stroke-width: 1.07; stroke: none; fill: #0D0D0D;' />
<text x='277.78' y='410.07' style='font-size: 11.00px;fill: #CCCCCC; font-family: "Liberation Sans";' textLength='73.41px' lengthAdjust='spacingAndGlyphs'>Rows captured</text>
<image width='70.87' height='14.17' x='356.66' y='391.54' preserveAspectRatio='none' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAABCAYAAABkOJMpAAAAfklEQVQ4ja2OURKAIAhEn+fpBN2+k0kfWZMIiE0fzizuW9hy7JtQQABKe4A4WrOP1p61Q3teJsOtZKI7AZ/l3F6zPY5eYbtcpofXX+nlWz9xQsJ794x6J9lpr9ncdqZYNYee0f/yS8eP/piP+C+zYN+z/G42/qqRqbf34itwAsyhkfmCoyqHAAAAAElFTkSuQmCC'/>
<polyline points='356.78,402.88 356.78,405.71 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='371.49,402.88 371.49,405.71 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='386.21,402.88 386.21,405.71 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='400.92,402.88 400.92,405.71 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='415.64,402.88 415.64,405.71 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='356.78,394.37 356.78,391.54 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='371.49,394.37 371.49,391.54 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='386.21,394.37 386.21,391.54 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='400.92,394.37 400.92,391.54 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='415.64,394.37 415.64,391.54 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<text x='356.78' y='418.76' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='6.12px' lengthAdjust='spacingAndGlyphs'>0</text>
<text x='371.49' y='418.76' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='18.38px' lengthAdjust='spacingAndGlyphs'>100</text>
<text x='386.21' y='418.76' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='18.38px' lengthAdjust='spacingAndGlyphs'>200</text>
<text x='400.92' y='418.76' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='18.38px' lengthAdjust='spacingAndGlyphs'>300</text>
<text x='415.64' y='418.76' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='18.38px' lengthAdjust='spacingAndGlyphs'>400</text>
<text x='352.65' y='23.35' text-anchor='middle' style='font-size: 9.00px;fill: #666666; font-family: "Liberation Sans";' textLength='329.50px' lengthAdjust='spacingAndGlyphs'>3x3 Latin square: 3 seeds x 3 ISAs, 30 reps x 16 L8 configs per cell (480 rows/cell)</text>
<text x='352.65' y='14.98' text-anchor='middle' style='font-size: 12.00px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='334.00px' lengthAdjust='spacingAndGlyphs'>EXEC-DOE Campaign Completeness — Stadium Substrate</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

@@ -0,0 +1,92 @@
<?xml version='1.0' encoding='UTF-8' ?>
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='648.00pt' height='432.00pt' viewBox='0 0 648.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='cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA='>
<rect x='0.00' y='0.00' width='648.00' height='432.00' />
</clipPath>
</defs>
<g clip-path='url(#cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA=)'>
<rect x='0.00' y='0.000000000000057' width='648.00' height='432.00' style='stroke-width: 1.07; stroke: none; fill: #FFFFFF;' />
</g>
<defs>
<clipPath id='cpNTQuNzh8NjQyLjUyfDI0LjI5fDM1MS42Ng=='>
<rect x='54.78' y='24.29' width='587.74' height='327.38' />
</clipPath>
</defs>
<g clip-path='url(#cpNTQuNzh8NjQyLjUyfDI0LjI5fDM1MS42Ng==)'>
<polyline points='54.78,290.28 642.52,290.28 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='54.78,187.97 642.52,187.97 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='54.78,85.67 642.52,85.67 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='164.98,351.66 164.98,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='348.65,351.66 348.65,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='532.32,351.66 532.32,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<rect x='73.15' y='136.82' width='183.67' height='102.30' style='stroke-width: 3.20; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='440.49' y='136.82' width='183.67' height='102.30' style='stroke-width: 3.20; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='256.82' y='136.82' width='183.67' height='102.30' style='stroke-width: 3.20; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='73.15' y='239.13' width='183.67' height='102.30' style='stroke-width: 3.20; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='440.49' y='239.13' width='183.67' height='102.30' style='stroke-width: 3.20; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='256.82' y='239.13' width='183.67' height='102.30' style='stroke-width: 3.20; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='73.15' y='34.52' width='183.67' height='102.30' style='stroke-width: 3.20; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='440.49' y='34.52' width='183.67' height='102.30' style='stroke-width: 3.20; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<rect x='256.82' y='34.52' width='183.67' height='102.30' style='stroke-width: 3.20; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #2CA02C;' />
<text x='164.98' y='192.08' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #1A1A1A; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='532.32' y='192.08' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #1A1A1A; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='348.65' y='192.08' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #1A1A1A; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='164.98' y='294.39' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #1A1A1A; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='532.32' y='294.39' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #1A1A1A; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='348.65' y='294.39' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #1A1A1A; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='164.98' y='89.78' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #1A1A1A; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='532.32' y='89.78' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #1A1A1A; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
<text x='348.65' y='89.78' text-anchor='middle' style='font-size: 11.95px; font-weight: bold;fill: #1A1A1A; font-family: "Liberation Sans";' textLength='43.16px' lengthAdjust='spacingAndGlyphs'>480/480</text>
</g>
<g clip-path='url(#cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA=)'>
<text x='49.85' y='293.31' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='26.89px' lengthAdjust='spacingAndGlyphs'>amd64</text>
<text x='49.85' y='191.00' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='31.78px' lengthAdjust='spacingAndGlyphs'>aarch64</text>
<text x='49.85' y='88.70' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='27.88px' lengthAdjust='spacingAndGlyphs'>riscv64</text>
<text x='164.98' y='362.65' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='24.45px' lengthAdjust='spacingAndGlyphs'>12345</text>
<text x='348.65' y='362.65' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='24.45px' lengthAdjust='spacingAndGlyphs'>67890</text>
<text x='532.32' y='362.65' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='24.45px' lengthAdjust='spacingAndGlyphs'>13579</text>
<text x='348.65' y='374.78' text-anchor='middle' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='25.72px' lengthAdjust='spacingAndGlyphs'>Seed</text>
<text transform='translate(13.05,187.97) rotate(-90)' text-anchor='middle' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='58.72px' lengthAdjust='spacingAndGlyphs'>Architecture</text>
<text x='273.78' y='411.06' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='73.41px' lengthAdjust='spacingAndGlyphs'>Rows captured</text>
<image width='70.87' height='14.17' x='352.66' y='393.50' preserveAspectRatio='none' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAABCAYAAABkOJMpAAAAfklEQVQ4ja2OURKAIAhEn+fpBN2+k0kfWZMIiE0fzizuW9hy7JtQQABKe4A4WrOP1p61Q3teJsOtZKI7AZ/l3F6zPY5eYbtcpofXX+nlWz9xQsJ794x6J9lpr9ncdqZYNYee0f/yS8eP/piP+C+zYN+z/G42/qqRqbf34itwAsyhkfmCoyqHAAAAAElFTkSuQmCC'/>
<polyline points='352.78,404.84 352.78,407.68 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='367.49,404.84 367.49,407.68 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='382.21,404.84 382.21,407.68 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='396.92,404.84 396.92,407.68 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='411.64,404.84 411.64,407.68 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='352.78,396.34 352.78,393.50 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='367.49,396.34 367.49,393.50 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='382.21,396.34 382.21,393.50 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='396.92,396.34 396.92,393.50 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<polyline points='411.64,396.34 411.64,393.50 ' style='stroke-width: 0.38; stroke: #FFFFFF; stroke-linecap: butt;' />
<text x='352.78' y='419.21' text-anchor='middle' style='font-size: 8.80px; font-family: "Liberation Sans";' textLength='4.89px' lengthAdjust='spacingAndGlyphs'>0</text>
<text x='367.49' y='419.21' text-anchor='middle' style='font-size: 8.80px; font-family: "Liberation Sans";' textLength='14.67px' lengthAdjust='spacingAndGlyphs'>100</text>
<text x='382.21' y='419.21' text-anchor='middle' style='font-size: 8.80px; font-family: "Liberation Sans";' textLength='14.67px' lengthAdjust='spacingAndGlyphs'>200</text>
<text x='396.92' y='419.21' text-anchor='middle' style='font-size: 8.80px; font-family: "Liberation Sans";' textLength='14.67px' lengthAdjust='spacingAndGlyphs'>300</text>
<text x='411.64' y='419.21' text-anchor='middle' style='font-size: 8.80px; font-family: "Liberation Sans";' textLength='14.67px' lengthAdjust='spacingAndGlyphs'>400</text>
<text x='348.65' y='23.35' text-anchor='middle' style='font-size: 9.00px;fill: #666666; font-family: "Liberation Sans";' textLength='329.50px' lengthAdjust='spacingAndGlyphs'>3x3 Latin square: 3 seeds x 3 ISAs, 30 reps x 16 L8 configs per cell (480 rows/cell)</text>
<text x='348.65' y='14.98' text-anchor='middle' style='font-size: 12.00px; font-weight: bold; font-family: "Liberation Sans";' textLength='334.00px' lengthAdjust='spacingAndGlyphs'>EXEC-DOE Campaign Completeness — Stadium Substrate</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.8 KiB

@@ -0,0 +1,77 @@
<?xml version='1.0' encoding='UTF-8' ?>
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='648.00pt' height='432.00pt' viewBox='0 0 648.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='cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA='>
<rect x='0.00' y='0.00' width='648.00' height='432.00' />
</clipPath>
</defs>
<g clip-path='url(#cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA=)'>
<rect x='0.00' y='0.000000000000057' width='648.00' height='432.00' style='stroke-width: 1.07; stroke: none; fill: #0D0D0D;' />
</g>
<defs>
<clipPath id='cpNjguOTR8NjQyLjUyfDI0LjI5fDM4Ny4yNw=='>
<rect x='68.94' y='24.29' width='573.58' height='362.98' />
</clipPath>
</defs>
<g clip-path='url(#cpNjguOTR8NjQyLjUyfDI0LjI5fDM4Ny4yNw==)'>
<rect x='68.94' y='24.29' width='573.58' height='362.98' style='stroke-width: 1.07; stroke: none; fill: #0D0D0D;' />
<polyline points='68.94,387.27 642.52,387.27 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='68.94,296.52 642.52,296.52 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='68.94,205.78 642.52,205.78 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='68.94,115.03 642.52,115.03 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='68.94,24.29 642.52,24.29 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='176.48,387.27 176.48,24.29 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='355.73,387.27 355.73,24.29 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='534.97,387.27 534.97,24.29 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<line x1='176.48' y1='205.78' x2='176.48' y2='205.78' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
<line x1='176.48' y1='205.78' x2='176.48' y2='205.78' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
<polygon points='109.27,205.78 109.27,205.78 243.70,205.78 243.70,205.78 109.27,205.78 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter; fill: #E07B39; fill-opacity: 0.85;' />
<line x1='109.27' y1='205.78' x2='243.70' y2='205.78' style='stroke-width: 2.13; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter;' />
<line x1='355.73' y1='205.78' x2='355.73' y2='205.78' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
<line x1='355.73' y1='205.78' x2='355.73' y2='205.78' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
<polygon points='288.51,205.78 288.51,205.78 422.95,205.78 422.95,205.78 288.51,205.78 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter; fill: #4A90D9; fill-opacity: 0.85;' />
<line x1='288.51' y1='205.78' x2='422.95' y2='205.78' style='stroke-width: 2.13; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter;' />
<line x1='534.97' y1='205.78' x2='534.97' y2='205.78' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
<line x1='534.97' y1='205.78' x2='534.97' y2='205.78' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
<polygon points='467.76,205.78 467.76,205.78 602.19,205.78 602.19,205.78 467.76,205.78 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter; fill: #50C878; fill-opacity: 0.85;' />
<line x1='467.76' y1='205.78' x2='602.19' y2='205.78' style='stroke-width: 2.13; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter;' />
</g>
<g clip-path='url(#cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA=)'>
<text x='64.01' y='391.05' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='45.94px' lengthAdjust='spacingAndGlyphs'>52428.95</text>
<text x='64.01' y='300.31' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='45.94px' lengthAdjust='spacingAndGlyphs'>52428.98</text>
<text x='64.01' y='209.56' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='45.94px' lengthAdjust='spacingAndGlyphs'>52429.00</text>
<text x='64.01' y='118.82' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='45.94px' lengthAdjust='spacingAndGlyphs'>52429.03</text>
<text x='64.01' y='28.07' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='45.94px' lengthAdjust='spacingAndGlyphs'>52429.05</text>
<text x='176.48' y='399.77' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='33.66px' lengthAdjust='spacingAndGlyphs'>amd64</text>
<text x='176.48' y='411.65' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='40.97px' lengthAdjust='spacingAndGlyphs'>(x86-64)</text>
<text x='355.73' y='399.77' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='39.78px' lengthAdjust='spacingAndGlyphs'>aarch64</text>
<text x='355.73' y='411.65' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='54.38px' lengthAdjust='spacingAndGlyphs'>(ARMv8-A)</text>
<text x='534.97' y='399.77' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='34.84px' lengthAdjust='spacingAndGlyphs'>riscv64</text>
<text x='534.97' y='411.65' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='51.14px' lengthAdjust='spacingAndGlyphs'>(RV64GC)</text>
<text x='355.73' y='424.24' text-anchor='middle' style='font-size: 11.00px;fill: #CCCCCC; font-family: "Liberation Sans";' textLength='132.14px' lengthAdjust='spacingAndGlyphs'>Instruction-Set Architecture</text>
<text transform='translate(13.05,205.78) rotate(-90)' text-anchor='middle' style='font-size: 11.00px;fill: #CCCCCC; font-family: "Liberation Sans";' textLength='105.84px' lengthAdjust='spacingAndGlyphs'>fit_q (Q16 fixed-point)</text>
<text x='355.73' y='23.35' text-anchor='middle' style='font-size: 9.00px;fill: #666666; font-family: "Liberation Sans";' textLength='334.42px' lengthAdjust='spacingAndGlyphs'>Kruskal-Wallis fit_q ~ arch: H=NaN, p=NaN (all 4,320 rows, 3 seeds pooled per ISA)</text>
<text x='355.73' y='14.98' text-anchor='middle' style='font-size: 12.00px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='216.22px' lengthAdjust='spacingAndGlyphs'>Inference-Fit Distribution Across ISAs</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.1 KiB

@@ -0,0 +1,76 @@
<?xml version='1.0' encoding='UTF-8' ?>
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='648.00pt' height='432.00pt' viewBox='0 0 648.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='cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA='>
<rect x='0.00' y='0.00' width='648.00' height='432.00' />
</clipPath>
</defs>
<g clip-path='url(#cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA=)'>
<rect x='0.00' y='0.000000000000057' width='648.00' height='432.00' style='stroke-width: 1.07; stroke: none; fill: #FFFFFF;' />
</g>
<defs>
<clipPath id='cpNTkuNjd8NjQyLjUyfDI0LjI5fDM5MS42MQ=='>
<rect x='59.67' y='24.29' width='582.85' height='367.33' />
</clipPath>
</defs>
<g clip-path='url(#cpNTkuNjd8NjQyLjUyfDI0LjI5fDM5MS42MQ==)'>
<polyline points='59.67,391.61 642.52,391.61 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='59.67,299.78 642.52,299.78 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='59.67,207.95 642.52,207.95 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='59.67,116.12 642.52,116.12 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='59.67,24.29 642.52,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='168.96,391.61 168.96,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='351.10,391.61 351.10,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='533.24,391.61 533.24,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<line x1='168.96' y1='207.95' x2='168.96' y2='207.95' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
<line x1='168.96' y1='207.95' x2='168.96' y2='207.95' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
<polygon points='100.65,207.95 100.65,207.95 237.26,207.95 237.26,207.95 100.65,207.95 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter; fill: #E07B39; fill-opacity: 0.85;' />
<line x1='100.65' y1='207.95' x2='237.26' y2='207.95' style='stroke-width: 2.13; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter;' />
<line x1='351.10' y1='207.95' x2='351.10' y2='207.95' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
<line x1='351.10' y1='207.95' x2='351.10' y2='207.95' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
<polygon points='282.79,207.95 282.79,207.95 419.40,207.95 419.40,207.95 282.79,207.95 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter; fill: #4A90D9; fill-opacity: 0.85;' />
<line x1='282.79' y1='207.95' x2='419.40' y2='207.95' style='stroke-width: 2.13; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter;' />
<line x1='533.24' y1='207.95' x2='533.24' y2='207.95' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
<line x1='533.24' y1='207.95' x2='533.24' y2='207.95' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
<polygon points='464.93,207.95 464.93,207.95 601.54,207.95 601.54,207.95 464.93,207.95 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter; fill: #50C878; fill-opacity: 0.85;' />
<line x1='464.93' y1='207.95' x2='601.54' y2='207.95' style='stroke-width: 2.13; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter;' />
</g>
<g clip-path='url(#cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA=)'>
<text x='54.74' y='394.64' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='36.67px' lengthAdjust='spacingAndGlyphs'>52428.95</text>
<text x='54.74' y='302.81' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='36.67px' lengthAdjust='spacingAndGlyphs'>52428.98</text>
<text x='54.74' y='210.98' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='36.67px' lengthAdjust='spacingAndGlyphs'>52429.00</text>
<text x='54.74' y='119.14' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='36.67px' lengthAdjust='spacingAndGlyphs'>52429.03</text>
<text x='54.74' y='27.31' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='36.67px' lengthAdjust='spacingAndGlyphs'>52429.05</text>
<text x='168.96' y='402.60' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='26.89px' lengthAdjust='spacingAndGlyphs'>amd64</text>
<text x='168.96' y='412.10' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='32.73px' lengthAdjust='spacingAndGlyphs'>(x86-64)</text>
<text x='351.10' y='402.60' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='31.78px' lengthAdjust='spacingAndGlyphs'>aarch64</text>
<text x='351.10' y='412.10' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='43.50px' lengthAdjust='spacingAndGlyphs'>(ARMv8-A)</text>
<text x='533.24' y='402.60' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='27.88px' lengthAdjust='spacingAndGlyphs'>riscv64</text>
<text x='533.24' y='412.10' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='40.91px' lengthAdjust='spacingAndGlyphs'>(RV64GC)</text>
<text x='351.10' y='424.24' text-anchor='middle' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='132.14px' lengthAdjust='spacingAndGlyphs'>Instruction-Set Architecture</text>
<text transform='translate(13.05,207.95) rotate(-90)' text-anchor='middle' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='105.84px' lengthAdjust='spacingAndGlyphs'>fit_q (Q16 fixed-point)</text>
<text x='351.10' y='23.35' text-anchor='middle' style='font-size: 9.00px;fill: #666666; font-family: "Liberation Sans";' textLength='334.42px' lengthAdjust='spacingAndGlyphs'>Kruskal-Wallis fit_q ~ arch: H=NaN, p=NaN (all 4,320 rows, 3 seeds pooled per ISA)</text>
<text x='351.10' y='14.98' text-anchor='middle' style='font-size: 12.00px; font-weight: bold; font-family: "Liberation Sans";' textLength='216.22px' lengthAdjust='spacingAndGlyphs'>Inference-Fit Distribution Across ISAs</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.9 KiB

@@ -0,0 +1,81 @@
<?xml version='1.0' encoding='UTF-8' ?>
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='648.00pt' height='432.00pt' viewBox='0 0 648.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='cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA='>
<rect x='0.00' y='0.00' width='648.00' height='432.00' />
</clipPath>
</defs>
<g clip-path='url(#cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA=)'>
<rect x='0.00' y='0.000000000000057' width='648.00' height='432.00' style='stroke-width: 1.07; stroke: none; fill: #0D0D0D;' />
</g>
<defs>
<clipPath id='cpNDEuMzh8NjQyLjUyfDI0LjI5fDM2My4wNg=='>
<rect x='41.38' y='24.29' width='601.15' height='338.77' />
</clipPath>
</defs>
<g clip-path='url(#cpNDEuMzh8NjQyLjUyfDI0LjI5fDM2My4wNg==)'>
<rect x='41.38' y='24.29' width='601.15' height='338.77' style='stroke-width: 1.07; stroke: none; fill: #0D0D0D;' />
<polyline points='41.38,347.66 642.52,347.66 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='41.38,285.06 642.52,285.06 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='41.38,222.47 642.52,222.47 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='41.38,159.87 642.52,159.87 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='41.38,97.27 642.52,97.27 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='41.38,34.68 642.52,34.68 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='154.09,363.06 154.09,24.29 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='341.95,363.06 341.95,24.29 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<polyline points='529.81,363.06 529.81,24.29 ' style='stroke-width: 1.07; stroke: #1E1E1E; stroke-linecap: butt;' />
<rect x='133.74' y='39.68' width='40.70' height='307.98' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #4A90D9; fill-opacity: 0.92;' />
<rect x='509.45' y='39.68' width='40.70' height='307.98' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #4A90D9; fill-opacity: 0.92;' />
<rect x='321.60' y='39.68' width='40.70' height='307.98' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #4A90D9; fill-opacity: 0.92;' />
<rect x='86.77' y='39.68' width='40.70' height='307.98' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #E07B39; fill-opacity: 0.92;' />
<rect x='462.49' y='39.68' width='40.70' height='307.98' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #E07B39; fill-opacity: 0.92;' />
<rect x='274.63' y='39.68' width='40.70' height='307.98' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #E07B39; fill-opacity: 0.92;' />
<rect x='180.70' y='39.68' width='40.70' height='307.98' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #50C878; fill-opacity: 0.92;' />
<rect x='556.42' y='39.68' width='40.70' height='307.98' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #50C878; fill-opacity: 0.92;' />
<rect x='368.56' y='39.68' width='40.70' height='307.98' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #50C878; fill-opacity: 0.92;' />
</g>
<g clip-path='url(#cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA=)'>
<text x='36.44' y='351.44' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='6.12px' lengthAdjust='spacingAndGlyphs'>0</text>
<text x='36.44' y='288.85' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='12.25px' lengthAdjust='spacingAndGlyphs'>50</text>
<text x='36.44' y='226.25' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='18.38px' lengthAdjust='spacingAndGlyphs'>100</text>
<text x='36.44' y='163.65' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='18.38px' lengthAdjust='spacingAndGlyphs'>150</text>
<text x='36.44' y='101.06' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='18.38px' lengthAdjust='spacingAndGlyphs'>200</text>
<text x='36.44' y='38.46' text-anchor='end' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='18.38px' lengthAdjust='spacingAndGlyphs'>250</text>
<text x='154.09' y='375.56' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='30.62px' lengthAdjust='spacingAndGlyphs'>12345</text>
<text x='341.95' y='375.56' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='30.62px' lengthAdjust='spacingAndGlyphs'>67890</text>
<text x='529.81' y='375.56' text-anchor='middle' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='30.62px' lengthAdjust='spacingAndGlyphs'>13579</text>
<text x='341.95' y='388.15' text-anchor='middle' style='font-size: 11.00px;fill: #CCCCCC; font-family: "Liberation Sans";' textLength='25.72px' lengthAdjust='spacingAndGlyphs'>Seed</text>
<text transform='translate(13.05,193.67) rotate(-90)' text-anchor='middle' style='font-size: 11.00px;fill: #CCCCCC; font-family: "Liberation Sans";' textLength='67.28px' lengthAdjust='spacingAndGlyphs'>Mean win_div</text>
<rect x='235.75' y='401.39' width='212.39' height='25.13' style='stroke-width: 1.07; stroke: none; fill: #0D0D0D;' />
<text x='241.23' y='417.74' style='font-size: 11.00px;fill: #CCCCCC; font-family: "Liberation Sans";' textLength='17.75px' lengthAdjust='spacingAndGlyphs'>ISA</text>
<rect x='265.17' y='407.58' width='12.76' height='12.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #E07B39; fill-opacity: 0.92;' />
<rect x='323.96' y='407.58' width='12.76' height='12.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #4A90D9; fill-opacity: 0.92;' />
<rect x='388.87' y='407.58' width='12.76' height='12.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #50C878; fill-opacity: 0.92;' />
<text x='284.12' y='417.74' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='33.66px' lengthAdjust='spacingAndGlyphs'>amd64</text>
<text x='342.90' y='417.74' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='39.78px' lengthAdjust='spacingAndGlyphs'>aarch64</text>
<text x='407.82' y='417.74' style='font-size: 11.00px;fill: #AAAAAA; font-family: "Liberation Sans";' textLength='34.84px' lengthAdjust='spacingAndGlyphs'>riscv64</text>
<text x='341.95' y='23.35' text-anchor='middle' style='font-size: 9.00px;fill: #666666; font-family: "Liberation Sans";' textLength='285.50px' lengthAdjust='spacingAndGlyphs'>9 cells, 480 runs each, Stadium substrate (post item-4.6 quota-grant fix)</text>
<text x='341.95' y='14.98' text-anchor='middle' style='font-size: 12.00px; font-weight: bold;fill: #FFFFFF; font-family: "Liberation Sans";' textLength='243.20px' lengthAdjust='spacingAndGlyphs'>Mean Window-Diversity per Campaign Cell</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

@@ -0,0 +1,79 @@
<?xml version='1.0' encoding='UTF-8' ?>
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='648.00pt' height='432.00pt' viewBox='0 0 648.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='cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA='>
<rect x='0.00' y='0.00' width='648.00' height='432.00' />
</clipPath>
</defs>
<g clip-path='url(#cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA=)'>
<rect x='0.00' y='0.000000000000057' width='648.00' height='432.00' style='stroke-width: 1.07; stroke: none; fill: #FFFFFF;' />
</g>
<defs>
<clipPath id='cpMzcuNjd8NjQyLjUyfDI0LjI5fDM2NS4wMg=='>
<rect x='37.67' y='24.29' width='604.85' height='340.74' />
</clipPath>
</defs>
<g clip-path='url(#cpMzcuNjd8NjQyLjUyfDI0LjI5fDM2NS4wMg==)'>
<polyline points='37.67,349.54 642.52,349.54 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='37.67,286.58 642.52,286.58 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='37.67,223.62 642.52,223.62 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='37.67,160.66 642.52,160.66 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='37.67,97.70 642.52,97.70 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='37.67,34.74 642.52,34.74 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='151.08,365.02 151.08,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='340.10,365.02 340.10,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='529.11,365.02 529.11,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
<rect x='130.60' y='39.77' width='40.95' height='309.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #4A90D9; fill-opacity: 0.92;' />
<rect x='508.63' y='39.77' width='40.95' height='309.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #4A90D9; fill-opacity: 0.92;' />
<rect x='319.62' y='39.77' width='40.95' height='309.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #4A90D9; fill-opacity: 0.92;' />
<rect x='83.35' y='39.77' width='40.95' height='309.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #E07B39; fill-opacity: 0.92;' />
<rect x='461.38' y='39.77' width='40.95' height='309.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #E07B39; fill-opacity: 0.92;' />
<rect x='272.37' y='39.77' width='40.95' height='309.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #E07B39; fill-opacity: 0.92;' />
<rect x='177.86' y='39.77' width='40.95' height='309.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #50C878; fill-opacity: 0.92;' />
<rect x='555.89' y='39.77' width='40.95' height='309.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #50C878; fill-opacity: 0.92;' />
<rect x='366.87' y='39.77' width='40.95' height='309.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #50C878; fill-opacity: 0.92;' />
</g>
<g clip-path='url(#cpMC4wMHw2NDguMDB8MC4wMHw0MzIuMDA=)'>
<text x='32.74' y='352.56' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='4.89px' lengthAdjust='spacingAndGlyphs'>0</text>
<text x='32.74' y='289.60' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='9.78px' lengthAdjust='spacingAndGlyphs'>50</text>
<text x='32.74' y='226.64' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='14.67px' lengthAdjust='spacingAndGlyphs'>100</text>
<text x='32.74' y='163.68' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='14.67px' lengthAdjust='spacingAndGlyphs'>150</text>
<text x='32.74' y='100.72' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='14.67px' lengthAdjust='spacingAndGlyphs'>200</text>
<text x='32.74' y='37.76' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='14.67px' lengthAdjust='spacingAndGlyphs'>250</text>
<text x='151.08' y='376.01' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='24.45px' lengthAdjust='spacingAndGlyphs'>12345</text>
<text x='340.10' y='376.01' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='24.45px' lengthAdjust='spacingAndGlyphs'>67890</text>
<text x='529.11' y='376.01' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='24.45px' lengthAdjust='spacingAndGlyphs'>13579</text>
<text x='340.10' y='388.15' text-anchor='middle' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='25.72px' lengthAdjust='spacingAndGlyphs'>Seed</text>
<text transform='translate(13.05,194.66) rotate(-90)' text-anchor='middle' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='67.28px' lengthAdjust='spacingAndGlyphs'>Mean win_div</text>
<text x='250.25' y='417.74' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='17.75px' lengthAdjust='spacingAndGlyphs'>ISA</text>
<rect x='274.19' y='407.58' width='12.76' height='12.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #E07B39; fill-opacity: 0.92;' />
<rect x='326.21' y='407.58' width='12.76' height='12.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #4A90D9; fill-opacity: 0.92;' />
<rect x='383.12' y='407.58' width='12.76' height='12.76' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #50C878; fill-opacity: 0.92;' />
<text x='293.13' y='416.98' style='font-size: 8.80px; font-family: "Liberation Sans";' textLength='26.89px' lengthAdjust='spacingAndGlyphs'>amd64</text>
<text x='345.15' y='416.98' style='font-size: 8.80px; font-family: "Liberation Sans";' textLength='31.78px' lengthAdjust='spacingAndGlyphs'>aarch64</text>
<text x='402.07' y='416.98' style='font-size: 8.80px; font-family: "Liberation Sans";' textLength='27.88px' lengthAdjust='spacingAndGlyphs'>riscv64</text>
<text x='340.10' y='23.35' text-anchor='middle' style='font-size: 9.00px;fill: #666666; font-family: "Liberation Sans";' textLength='285.50px' lengthAdjust='spacingAndGlyphs'>9 cells, 480 runs each, Stadium substrate (post item-4.6 quota-grant fix)</text>
<text x='340.10' y='14.98' text-anchor='middle' style='font-size: 12.00px; font-weight: bold; font-family: "Liberation Sans";' textLength='243.20px' lengthAdjust='spacingAndGlyphs'>Mean Window-Diversity per Campaign Cell</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.5 KiB

@@ -0,0 +1,10 @@
"arch","seed","n_rows","n_distinct_run_id","l8_modes","mean_win_div","mean_fit_q","mean_bc_mean_q","mean_bb_mean_q"
"aarch64","12345",480,480,1,246,52429,0,0
"aarch64","13579",480,480,1,246,52429,0,0
"aarch64","67890",480,480,1,246,52429,0,0
"amd64","12345",480,480,1,246,52429,0,0
"amd64","13579",480,480,1,246,52429,0,0
"amd64","67890",480,480,1,246,52429,0,0
"riscv64","12345",480,480,1,246,52429,0,0
"riscv64","13579",480,480,1,246,52429,0,0
"riscv64","67890",480,480,1,246,52429,0,0
1 arch seed n_rows n_distinct_run_id l8_modes mean_win_div mean_fit_q mean_bc_mean_q mean_bb_mean_q
2 aarch64 12345 480 480 1 246 52429 0 0
3 aarch64 13579 480 480 1 246 52429 0 0
4 aarch64 67890 480 480 1 246 52429 0 0
5 amd64 12345 480 480 1 246 52429 0 0
6 amd64 13579 480 480 1 246 52429 0 0
7 amd64 67890 480 480 1 246 52429 0 0
8 riscv64 12345 480 480 1 246 52429 0 0
9 riscv64 13579 480 480 1 246 52429 0 0
10 riscv64 67890 480 480 1 246 52429 0 0
@@ -0,0 +1,32 @@
Kruskal-Wallis: fit_q ~ arch
Kruskal-Wallis rank sum test
data: fit_q by arch
Kruskal-Wallis chi-squared = NaN, df = 2, p-value = NA
Kruskal-Wallis: win_div ~ arch
Kruskal-Wallis rank sum test
data: win_div by arch
Kruskal-Wallis chi-squared = NaN, df = 2, p-value = NA
Kruskal-Wallis: fit_q ~ seed
Kruskal-Wallis rank sum test
data: fit_q by seed
Kruskal-Wallis chi-squared = NaN, df = 2, p-value = NA
Kruskal-Wallis: win_div ~ seed
Kruskal-Wallis rank sum test
data: win_div by seed
Kruskal-Wallis chi-squared = NaN, df = 2, p-value = NA