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
+67
View File
@@ -1993,3 +1993,70 @@ number.** `capsules/ACL.4th` is not self-activated in this repo's default `init.
other boot in this document. Reproducing the original `+0.0054%+0.0088%` measurement would
need a paired run (ACL enabled vs. disabled) using this now-validated mechanism and tooling —
scoped but not attempted here.
## N. `SWAP-MTX` real correctness bug found and fixed — Fisher-Yates shuffle was never actually shuffling correctly — 2026-08-20
While building the analysis/report for Section M's campaign, `cfg` (one of 16 L8 factor
configs) was found completely absent from `run_id`'s output for 2 of the 3 seeds (12345,
13579), present for the third (67890) — reproduced identically across all three architectures
for a given seed. Captain Bob: "this is worrisome" — root-caused rather than worked around.
**Root cause, confirmed by direct trace and empirical test, not just code reading: `SWAP-MTX`
(`capsules/doe.4th` Block 2104, feeding `SHUFFLE-MATRIX`'s Fisher-Yates permutation) does not
swap — it performs a lossy one-way copy.**
```forth
: SWAP-MTX ( i j -- )
OVER MATRIX@ >R
OVER MATRIX@ ROT MATRIX! \ writes mat[i] back into mat[i] -- a no-op, NOT mat[j]!
R> SWAP MATRIX! ; \ writes old mat[i] into mat[j] -- only half a swap
```
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 have become `5`), `mat[5]=0` (correctly
received old `mat[0]`, but the original value `5` is destroyed, never written anywhere). Every
"Fisher-Yates shuffle" this mechanism has ever performed silently duplicates some values and
permanently destroys others — not a true permutation. This directly explains the `cfg`
absence pattern in Section M and calls into question the "Fisher-Yates shuffled" claim for
**every** historical `EXEC-DOE`/`DOE` campaign run with this code, including the original
ACL-RWT campaign (June 2026) Section M's own methodology was modeled on. Not new, not
introduced by item 4.6/Stadium work — this bug predates this session entirely.
**Fix — explicit temp variables, no clever stack juggling (trivially verifiable by
inspection):**
```forth
VARIABLE SW-I VARIABLE SW-J VARIABLE SW-VI VARIABLE SW-VJ
: SWAP-MTX ( i j -- )
SW-J ! SW-I !
SW-I @ MATRIX@ SW-VI !
SW-J @ MATRIX@ SW-VJ !
SW-VJ @ SW-I @ MATRIX!
SW-VI @ SW-J @ MATRIX! ;
```
Block 2104 stayed within both the 1024-byte and 16-content-line block limits (`mkcapsule
--lint` clean); one line needed a `VARIABLE`-name shortening (`SWAP-*``SW-*`) to fit the
64-char/line limit.
**Verification, hosted build, all three seeds used by Section M's campaign:** `12345 30
EXEC-DOE`, `67890 30 EXEC-DOE`, `13579 30 EXEC-DOE` each now produce exactly 480 rows, all 16
`cfg` values represented exactly 30 times each, `run_id` 0479 fully distinct — a genuine
uniform permutation for the first time. Confirmed by piping the stripped capsule source
directly into the hosted binary (same method as Sections K/L), not by QEMU boot — `doe.4th`
is capsule-level FORTH content, outside the C-registered `test_runner`/`WordTestSuite`
harness's scope entirely, so this is the correct verification method for this class of fix,
not a shortcut around it.
**Three-arch QEMU acceptance, clean:** amd64/aarch64/riscv64 all booted to `ok>`, identical
`1012/0/0` POST totals and identical `dict_hash=0x5935ce53526d2152` on all three (expected —
`doe.4th` isn't C-registered and isn't auto-loaded at boot, so base-dictionary content is
untouched by this fix). `capsules/BLOCK_MAP.md` correctly shows only `doe.4th`'s own capsule
hash changed (`0xb6ecf5374e8ee77c``0xf154616d248e861f`); every other capsule's hash
unchanged, confirming the fix is isolated to its own file.
**Retroactive caveat, not re-litigated here:** Section M's campaign (all 9 cells, `experiments/
bare_metal/runs/acl-rwt-20260820/`) ran with the buggy shuffle — its per-run-matrix coverage
is not a valid uniform permutation, though total row count (480/cell) and the mechanism's
completion/error-free behavior are unaffected by this bug and remain valid findings. Whether to
re-run Section M's campaign against the fixed shuffle is Captain Bob's call, not made here.
+10 -10
View File
@@ -1,5 +1,5 @@
# Capsule Block Manifest — Auto-generated
<!-- Generated by mkcapsule --manifest 2026-08-19T11:54:28Z -->
<!-- Generated by mkcapsule --manifest 2026-08-20T14:53:07Z -->
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
<!-- Hand-written justifications and immutability notes live -->
<!-- in MANIFEST.md alongside this auto-generated index. -->
@@ -12,7 +12,7 @@
| `artemis:init.4th` | 4110, 4111, 4112, 4113, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4177, 4178, 4179, 4180, 4181, 4182, 4851, 4852 | `0x1859f0148048a2c1` |
| `common:msg.4th` | 4055 | `0xa99c5bcd3877f80e` |
| `doe-campaign.4th` | 4060, 4061, 4062, 4063, 4064, 4065 | `0x3d4549142d91ec20` |
| `doe.4th` | 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107 | `0xb6ecf5374e8ee77c` |
| `doe.4th` | 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107 | `0xf154616d248e861f` |
| `fabric.4th` | 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 5000, 5001, 5002 | `0x9b1d061339cea98d` |
| `font.4th` | 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985 | `0x720792b4fc758156` |
| `hermes:init.4th` | 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4175, 4176 | `0x85c7b311d1e5bf97` |
@@ -79,14 +79,14 @@
| 2093 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2094 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2095 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2100 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
| 2101 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
| 2102 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
| 2103 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
| 2104 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
| 2105 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
| 2106 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
| 2107 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
| 2100 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2101 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2102 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2103 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2104 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2105 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2106 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2107 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2130 | `init-4.4th` | `0x89e3ef1db5ac0627` | ok |
| 2131 | `init-4.4th` | `0x89e3ef1db5ac0627` | ok |
| 2132 | `init-4.4th` | `0x89e3ef1db5ac0627` | ok |
+6 -3
View File
@@ -66,10 +66,13 @@ Block 2104
CREATE RUN-MATRIX N-RUNS 8 * ALLOT
: MATRIX! ( val idx -- ) 8 * RUN-MATRIX + ! ;
: MATRIX@ ( idx -- val ) 8 * RUN-MATRIX + @ ;
VARIABLE SW-I VARIABLE SW-J VARIABLE SW-VI VARIABLE SW-VJ
: SWAP-MTX ( i j -- )
OVER MATRIX@ >R
OVER MATRIX@ ROT MATRIX!
R> SWAP MATRIX! ;
SW-J ! SW-I !
SW-I @ MATRIX@ SW-VI !
SW-J @ MATRIX@ SW-VJ !
SW-VJ @ SW-I @ MATRIX!
SW-VI @ SW-J @ MATRIX! ;
: INIT-MATRIX ( -- )
N-RUNS 0 DO I I MATRIX! LOOP ;
BIN
View File
Binary file not shown.
@@ -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
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff