From 466cdad23740be7cf46773c14897dcc56885a116 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Thu, 8 Oct 2026 08:48:54 +0000 Subject: [PATCH 1/5] docs: align benchmark speed summary with table (1k serpentine within noise) The Speed summary claimed the dense path beats FastHenry on every completed deck, but the 1,000-filament serpentine row is 73 ms vs 69 ms. Note the exception, and narrow '3x at small sizes' to the measured 1.6-3x. Apply the same correction to the README sentence that repeats the summary. Closes #167 Co-Authored-By: Claude Opus 5.5 Loom-Story: 2AMLogic/fasterhenry#167 Loom-Trace-Id: cb75ef33a6890b540ff1f237362bd3c4 Loom-Build: 0.19.868 ee904e1c151bc9cf15b0eb55dfe9d57ad6136cff clean --- README.md | 3 ++- docs/benchmarks.md | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a005b4fe..5504bf3c 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,8 @@ Measured head-to-head against the original FastHenry (operator-run, one machine, self-authored decks; method, hardware and caveats in [`docs/benchmarks.md`](docs/benchmarks.md)): fasterhenry's dense path is faster on wall clock at every size up to -~20 000 filaments (3× at small sizes, ~1.2× at 20 k, where FastHenry's +~20 000 filaments except around 1 000, where the two are within noise +(1.6–3× at a few hundred filaments or fewer, ~1.2× at 20 k, where FastHenry's multipole stays 14× ahead *per thread* — that dense-path edge is parallelism; the algorithmic answer is the pFFT + GMRES path above). On shared segment fixtures the two engines diff --git a/docs/benchmarks.md b/docs/benchmarks.md index 22d9c5a9..4da8f9fd 100644 --- a/docs/benchmarks.md +++ b/docs/benchmarks.md @@ -34,9 +34,11 @@ contaminates nothing. CI never invokes it. Reading it honestly: - **Wall clock on a many-core machine, fasterhenry's dense path beats - FastHenry's multipole on every completed deck** — 3× at small sizes, - ~1.2× at 20 k filaments, crossover around 30–50 k where neither - finishes comfortably. + FastHenry's multipole on every completed deck except the 1 000-filament + serpentine, where the two are within noise** (73 ms vs 69 ms) — + 1.6–3× at a few hundred filaments or fewer, ~2.2× at 5 k, ~1.2× at + 20 k filaments, crossover around 30–50 k where neither finishes + comfortably. - **Per thread, FastHenry's multipole is far ahead at scale** (14× at 20 k filaments single-threaded). Our dense wall-clock advantage is parallelism + SIMD + a blocked LU; it is not an algorithmic win. From 56703f211824e8a051e21f0e60b219f7ecc84a65 Mon Sep 17 00:00:00 2001 From: "loom-fleet-dispatch[bot]" <313063438+loom-fleet-dispatch[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 17:35:35 +0000 Subject: [PATCH 2/5] chore: re-date required checks for PR #169 (#8248 guard, automated by #8508) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit intentionally changes NOTHING in the tree — it exists only to give every required check a fresh started_at, because the #8248 required-check-freshness guard blocked this merge on evidence that predates the base branch's current tip, and the merge token lacks actions:write to re-run the stale check directly. Stale-Check: Clean-room check (no FastHenry-derived text) Stale-Clause: time rule (#8248 started_at fallback) Coupled-Base-Path: none Coupled-PR-Path: none From f5b62fab24eba83f1f673acb8c50339acfd1f914 Mon Sep 17 00:00:00 2001 From: "loom-fleet-dispatch[bot]" <313063438+loom-fleet-dispatch[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 18:31:06 +0000 Subject: [PATCH 3/5] chore: re-date required checks for PR #169 (#8248 guard, automated by #8508) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit intentionally changes NOTHING in the tree — it exists only to give every required check a fresh started_at, because the #8248 required-check-freshness guard blocked this merge on evidence that predates the base branch's current tip, and the merge token lacks actions:write to re-run the stale check directly. Stale-Check: Clean-room check (no FastHenry-derived text) Stale-Clause: this required check has no entry in the input-scope table and no declaration in `.loom/stale-check-inputs.json`, so which files it reads is unknown Coupled-Base-Path: .agents/skills/loom-doctor/SKILL.md Coupled-PR-Path: none From 82234ba238a32e8972ab3f9fd5995adca673f150 Mon Sep 17 00:00:00 2001 From: "loom-fleet-dispatch[bot]" <313063438+loom-fleet-dispatch[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 19:43:20 +0000 Subject: [PATCH 4/5] chore: re-date required checks for PR #169 (#8248 guard, automated by #8508) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit intentionally changes NOTHING in the tree — it exists only to give every required check a fresh started_at, because the #8248 required-check-freshness guard blocked this merge on evidence that predates the base branch's current tip, and the merge token lacks actions:write to re-run the stale check directly. Stale-Check: Clean-room check (no FastHenry-derived text) Stale-Clause: this required check has no entry in the input-scope table and no declaration in `.loom/stale-check-inputs.json`, so which files it reads is unknown Coupled-Base-Path: CHANGELOG.md Coupled-PR-Path: none From e680fec44552cc4b0bcf8877d08c129cb6f646f7 Mon Sep 17 00:00:00 2001 From: "loom-fleet-dispatch[bot]" <313063438+loom-fleet-dispatch[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 21:33:24 +0000 Subject: [PATCH 5/5] chore: re-date required checks for PR #169 (#8248 guard, automated by #8508) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit intentionally changes NOTHING in the tree — it exists only to give every required check a fresh started_at, because the #8248 required-check-freshness guard blocked this merge on evidence that predates the base branch's current tip, and the merge token lacks actions:write to re-run the stale check directly. Stale-Check: Clean-room check (no FastHenry-derived text) Stale-Clause: this required check has no entry in the input-scope table and no declaration in `.loom/stale-check-inputs.json`, so which files it reads is unknown Coupled-Base-Path: .claude/commands/loom/champion-pr-merge.md Coupled-PR-Path: none