Fix: _local_order divided by fp*fp that underflows to 0 for a tiny nonzero slope (ZeroDivisionError, caught by the sweep harness and charged as a failure - this is what had moved Table 6's order cells after the sign fix). Pinned by a test that fails on the old code. Every sweep file regenerated on the server (run_all_sweeps.sh). verify_article: skip result files that are not grid lists (it crashed on the out-of-sample dicts). Verifier now completes: 224 OK, 57 stale numbers in the paper to update (Table 6 again 7 of 7).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+7
-1
@@ -682,7 +682,13 @@ def _local_order(x2, f2, x1, f1, x0, f0):
|
||||
fpp = 2.0 * d012 # f''(x2) on the parabola
|
||||
if fp == 0.0 or not math.isfinite(fp) or not math.isfinite(fpp):
|
||||
return 1.0
|
||||
theta = f2 * fpp / (fp * fp)
|
||||
den = fp * fp
|
||||
if den == 0.0:
|
||||
# fp nonzero but its square underflows (found 2026-09-21: a ZeroDivisionError that
|
||||
# the sweep harness caught and charged as a failure, which is what moved Table 6's
|
||||
# order cells after the sign fix); no order can be read - decline, as for fp == 0
|
||||
return 1.0
|
||||
theta = f2 * fpp / den
|
||||
if not math.isfinite(theta) or not (0.0 < theta < 1.0):
|
||||
return 1.0
|
||||
m = 1.0 / (1.0 - theta)
|
||||
|
||||
Reference in New Issue
Block a user