baseline: the published sim-numerics artifact as it stands (490 tests, verify_article.py checks all 72 paper numbers against sweep_full.json)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
vvs
2026-09-20 22:38:17 +01:00
co-authored by Claude Opus 5
commit 4a23aacf96
75 changed files with 12175 additions and 0 deletions
+78
View File
@@ -0,0 +1,78 @@
# Next paper: the logarithmic change of variable for wide brackets
Not part of the current paper. Recorded here so the reasoning that leads to it
is not reconstructed from scratch.
## Why this is a separate paper and not a fix
The current paper's method is *additive*: every step moves the iterate by an
absolute amount, `|f|/|f'|`. On the Chandrupatla families `fun3.*`, `fun4.*`,
`fun5.*` the bracket is up to 10^12 wide while the root sits at |x| ≤ 3, so
the search must cross **twelve orders of magnitude**. An additive step cannot
do that efficiently: it is sized by the local slope, which says nothing about
how many decades remain.
That is exactly what stage 7 measured. The cube-root similarity beats the
proposed rule on all five members of `fun4` — 32/32/40/47/59 against
89/93/113/125/153, a factor of 2.6 — and it does so because its step is
`(|f|/σ)^(1/3)·D` rather than `(|f|/σ)·D`, i.e. a fixed *fraction* of the
bracket rather than an absolute distance. It marches geometrically.
So the regime is not "a different similarity function". It is **multiplicative
versus additive movement**, and that is a change of the space the method works
in, not of a coefficient inside it.
## What was already tried and must not be repeated
All of this is measured, in the repository, and pinned by tests.
1. **Use `cbrt` where it wins.** A switch chosen per benchmark set is *worse*
than not switching: 6905 evaluations against 6026. `cbrt` wins the `fun`
families and loses the rest of Chandrupatla (4099 against 3220 over that
set). The regime is narrower than the set.
2. **Detect the regime from the value ratio.** `rho = 1 − |f_n|/|f_{n−1}|`
destroys the order (2.000 → 0.904) and doubles the cost on the standard
problems (84 → 161). Near the root both values are negligible and their
ratio is noise.
3. **Detect it from the local order of `f`.** Dropping the linearity
assumption from the contraction law *does* produce the march exponent,
`p = L/(L − ln m)` with `L = ln(e/D)`, and it collapses to the multiplier
`m = 1/(1 − θ)`, `θ = f·f''/(f')²`. The derivation is sound and the order
survives (2.001), but the estimator is not sharp enough: on
Alefeld–Potra–Shi, where almost every root is simple and the truth is
`m = 1`, it reports `m > 1` on **27.9%** of steps with excursions to
`m = 34.8`; on the flat families it fires on **35.8%**. 27.9 against 35.8
is not a separation, and the false positives cost 273 evaluations.
4. **Separate the regimes by anything the method can see before it commits.**
Bracket width does not do it: the winners overlap completely, the proposed
scale winning on widths from 10^0 to 10^12.
## The proposal
Work in `u = sign(x − c)·log(1 + |x − c|/s)` rather than in `x`, with the
origin `c` and the unit `s` read from the bracket rather than chosen. An
additive step in `u` is a multiplicative step in `x`, so the same similarity
rule, the same derived scale and the same projection safeguard become a
geometric march without any new coefficient — and the march exponent, which
`cbrt` fixed at 1/3 by accident, disappears as a free quantity.
Two things must be established before this is a paper:
- **The transform must be parameter-free.** `c` and `s` have to come from the
bracket ends and the sign change, not from a choice. If they cannot, the
line closes the same way the phase detector did.
- **It must not cost anything on ordinary problems.** The transform has to be
the identity, to within rounding, when the bracket is narrow — otherwise it
buys the wide-bracket families at the price of the canonical set, which is
exactly the trade every attempt so far has failed.
## What would settle it
The same protocol as the current paper: the 154 Alefeld–Potra–Shi problems and
the 45 Chandrupatla problems, evaluations of `f` as the cost, failures charged
the full budget, the worst-case bound checked on every solved run, and the
configuration fixed by the derivation before the ranking is consulted.
Target to beat: **6026** evaluations over the two sets, 193 of 199 solved,
with the `2⌈log₂(w/xtol)⌉ + 3` guarantee intact. On the Chandrupatla set alone
the target is ITP's **2857**, which the current method does not reach (3220).