The new sections move into the canonical text, article/sim_numerics.md (Valeri's decision): section 7 'Where the similarity is read' with 7.1 per-place similarity, 7.2 the decision place, 7.3 the fun7 scoring artefact, 7.4 the gap decomposition; negative results 8-11 appended so items 1-7 keep their numbers; abstract paragraph; Future work rewritten (the refuted log transform removed); item 6 now says aps.13.00 is a scoring artefact, not a method failure. Translated into the .md's revised names: code 'ratio' = the tent max(0,1-|z|), code 'rational' = the ratio similarity 1/(1+|z|); the proposed method stays the .md's (tent, 3-point, projection).

Found on the way: negative item 'log change of variable' compared 3474 with 4516, the total of a DIFFERENT configuration; the honest pair is the same configuration in x, CHA 3643 -> 3474, APS 5822 -> 6940. Fixed in both texts. The gap-decomposition numbers were only traced to saved logs; they are now RECOMPUTED by verify_article.py from fresh runs of the diagnosis scripts (which return their values): 216 checks OK on Linux, 762 tests pass twice.

Open, for Valeri: the .md still says the projection's doubling is 'not a tuning constant', which simroot/pure.py (project_credit) refutes and which is why the .tex proposes credit; the .md's Tables 2-3 predate Chandrupatla's own method as a baseline (2785 APS, first place), so its 'parity' abstract is out of date; Brent 2890/4101 in the .md against 2889/4099 in the current sweep.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
vvs
2026-09-21 07:48:55 +01:00
co-authored by Claude Opus 5
parent f5d036c9d8
commit de1f8f726d
6 changed files with 200 additions and 9 deletions
+6
View File
@@ -108,6 +108,7 @@ def main():
valid = {m: 0 for m in MODELS}
states_all = 0
lose = []
results = {}
print(f"{'problem':<8} {'ours':>5} {'CH':>4} {'states':>6} "
f"bracket halvings per evaluation: {'ours':>6} {'IQI-rec':>8} {'IQI-brk':>8}")
for d in _CHANDRUPATLA_TESTS_DICTS:
@@ -178,6 +179,7 @@ def main():
paired[m][1] += 1
states_all += cnt
mean = lambda v: (sum(v) / len(v)) if v else float("nan") # noqa: E731
results[pid] = (n, ch, mean(per["ours"]), mean(per["iqiR"]), mean(per["iqiB"]))
print(f"{pid:<8} {n:5d} {ch:4d} {cnt:6d} {'':33} "
f"{mean(per['ours']):6.2f} {mean(per['iqiR']):8.2f} {mean(per['iqiB']):8.2f}")
@@ -199,6 +201,10 @@ def main():
print("\nPAIRED on states where both are valid: mean (IQI - ours) bracket halvings")
for m, (s_, c) in paired.items():
print(f" {m}: {s_ / c if c else float('nan'):+.2f} per evaluation (n={c})")
# returned so verify_article.py can check the paper's numbers against a fresh run
# instead of against a transcription of this printout
return {"per_problem": results, "neg_ok": neg_ok, "neg_all": neg_all,
"lose": lose}
if __name__ == "__main__":