results: absolute-rate tables + provenance, lock mix=0.125 default

docs/results.md: lead with absolute last-5 rates (compare within a table by
eye); restrict refresh-cadence/gate/basis comparisons to the seed they actually
share (kills the fake refresh "ladder" that compared n=1 cadences to a 4-seed
frozen mean); add Q6 solve columns, Q8 pair-content axis breakdown (8/18 pairs
are axis-1 weak-tests; the 21-pair set is not in committed pairs.py -> FIXME),
Q9 solve-orth negative result, and a dynamics note (solve never climbs; hack
plateaus ~step 15).

scripts/results.py: add `log` provenance column; drop the wide argv/time cols.

Lock mix_ratio=0.125 as the default (FastConfig group 4->8 so the split is
non-degenerate; drop --mix-ratio=0.5 from fast recipes). Q6 shows 0.125 keeps
the hack cut with no solve tax. Smoke passes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wassname
2026-05-29 09:30:30 +00:00
co-authored by Claude Opus 4.8
parent e7cdcaa0ab
commit 46f10d8150
4 changed files with 195 additions and 95 deletions
+3 -2
View File
@@ -93,6 +93,7 @@ def parse_log(path: Path) -> dict | None:
**cfg,
L5_hack=mean(hs[-5:]), L5_solve=mean(gts[-5:]),
WH_hack=mean(hs), n=len(hs),
log=path.name, # provenance: every number traces back to this file
)
@@ -103,8 +104,8 @@ def main() -> None:
return
df = pl.DataFrame(rows).sort("time")
cols = ["time", "arm", "seed", "mix", "refr", "over", "gate", "k", "dropf",
"vhack", "L5_hack", "L5_solve", "WH_hack", "n", "argv"]
cols = ["arm", "seed", "mix", "refr", "over", "gate", "k", "dropf",
"vhack", "L5_hack", "L5_solve", "WH_hack", "n", "log"]
print("\n## All runs (sorted by time)\n")
print(tabulate(df.select(cols).rows(), headers=cols, tablefmt="pipe", floatfmt=".3f"))