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
+3
View File
@@ -54,12 +54,15 @@ def main():
groups[key] += states(d["f"], a, b, float(d["root"]))
print(f"{'group':<18} {'states':>7} {'m > 1':>8} {'m >= 2':>8}")
shares = {}
for k in ("APS (canonical)", "CHA other", "CHA flat fun3-6"):
ms = groups[k]
n = max(len(ms), 1)
gt1 = 100.0 * sum(m > 1.0 for m in ms) / n
ge2 = 100.0 * sum(m >= 2.0 for m in ms) / n
shares[k] = (len(ms), gt1, ge2)
print(f"{k:<18} {len(ms):7d} {gt1:7.1f}% {ge2:7.1f}%")
return shares # for verify_article.py
if __name__ == "__main__":