|
| 1 | +## 2026-08-11 — E-THE-FRAME-WAS-ALREADY-SHIPPED-FOUR-TIMES-1 |
| 2 | + |
| 3 | +**Status:** FINDING `[G]` — read in source this session. |
| 4 | + |
| 5 | +**The `mu + kσ` calibrate → band → roll-on-drift frame exists FOUR times in this |
| 6 | +workspace, and I hand-wrote a fifth in Python after being corrected into it.** |
| 7 | + |
| 8 | +| instance | metered quantity | |
| 9 | +|---|---| |
| 10 | +| `ndarray::hpc::cascade::Cascade` — `expose()` → `Band`, `observe`/`recalibrate` | Hamming distance | |
| 11 | +| `perturbation_sim::rolling_floor::RollingFloor` — `threshold()` = *"the **confidence-interval** floor"*, `z()` = *"the **Jirak-honest** noise-floor units; significance via `n^(p/2−1)`, not IID"*, `band()` → Stable…Alarm, `preheat()` | mode instability | |
| 12 | +| `helix::quantize::RollingFloor` — `quantize`/`bucket_center`/`observe`/`roll` | palette `[a,b]` | |
| 13 | +| `thinking-engine::domino` — *"3σ top-K focus"* | table attention | |
| 14 | +| **`probes/weather-p1/p1_ci_vs_floor.py` — MINE** | ERA5 bucket CI | |
| 15 | + |
| 16 | +`perturbation_sim::RollingFloor` **is** the "corrected evaluation frame" that |
| 17 | +took three correction sections (§12.10–§12.12) and an operator intervention to |
| 18 | +reach — including the Jirak citation, in the doc comment. |
| 19 | + |
| 20 | +**Also found in the same sweep, all `[G]`:** |
| 21 | + |
| 22 | +- **`crates/perturbation-sim` is the applied instance of the whole stack** — |
| 23 | + `splat.rs` (Gaussian-splat **magnitude** side) + `sketch.rs` (Walsh/XOR **sign** |
| 24 | + side) is *literally* OGAR's two-algebra rule; `cascade_key.rs::morton48` is the |
| 25 | + OGAR production HHTL address; `hhtl.rs` derives `(HEEL,HIP,TWIG)` by **Cheeger |
| 26 | + bisection of the Laplacian**. |
| 27 | +- **64×64 "Stockfish ergonomics" is an exact identity:** `64×64 = 4096 cells = |
| 28 | + 4096 bit = 512 byte = 64 × u64` = **the CANON node stride**. A node's bits ARE a |
| 29 | + bitboard; `masked_popcount_batch(words, mask)` IS `popcount(attacks & targets)`; |
| 30 | + magic bitboards are the same LUT amortization as the `[a,b]` floor. |
| 31 | +- **`symbiont/src/domino.rs` already proves the AMX path** — 4×4 Morton BF16 |
| 32 | + tiles, **16 SoA boards per AMX 16×16 tile GEMM**, cascade feedback, real |
| 33 | + `TDPBF16PS` on Emerald Rapids. |
| 34 | + |
| 35 | +**Rule:** **before writing a frame, grep the workspace for the frame.** The |
| 36 | +`Consult, don't guess` ladder (card → knowledge doc → board → source) has no rung |
| 37 | +for *"search the sibling crates for the thing you are about to build"* — four |
| 38 | +misses in one document say it needs one. A measured number computed twice is not |
| 39 | +a wrong number; it is a wasted one, and it hides the fact that the first |
| 40 | +implementation already carried the caveats you were about to rediscover. |
| 41 | + |
| 42 | +## 2026-08-11 — E-TOPOLOGY-PICKS-THE-TABLE-NOT-THE-DOMAIN-1 |
| 43 | + |
| 44 | +**Status:** FINDING `[G]` — `DistanceLut::circular()` proven a metric |
| 45 | +EXHAUSTIVELY over all 256³ = 16 777 216 triples (`distance.rs`, 3 tests). |
| 46 | + |
| 47 | +**Supersedes both `E-THE-REUSE-IS-THE-PROCESS-…-1` and |
| 48 | +`E-JUDGE-THE-FIELD-NOT-THE-ELEMENT-1`.** Operator: *"distance.rs is normalized |
| 49 | +[a,b] amortizing in LUT."* |
| 50 | + |
| 51 | +**The LUT is the AMORTIZATION POINT, not merely a metric or a cache.** |
| 52 | +`quantize()` normalizes `[a,b]` once per element at ingest; `from_floor()` folds |
| 53 | +the *same* normalization into the table. Afterwards: no bounds, no division, no |
| 54 | +per-element normalization — a pure index lookup, in **unit-free** units, which is |
| 55 | +exactly what licenses cross-variable comparison. O(256²) once, not O(N²). |
| 56 | + |
| 57 | +**Consequence:** if the LUT amortizes *any* bounded `[a,b]`, a **circular** range |
| 58 | +is just another bounded range with a different formula. Built and proven: |
| 59 | +`circular()` = `min(|a−b|, 256−|a−b|)`, the cycle-graph geodesic on `Z_256` — |
| 60 | +**0 violations / 16 777 216 triples**, symmetric, identity, positive. Falsifier: |
| 61 | +`d_circ(255,0) = 1` vs `d_linear(255,0) = 255`. |
| 62 | + |
| 63 | +**So the crate's *"raw-azimuth is NOT a metric (the 2π wrap)"* is about the |
| 64 | +FORMULA, not about angles.** `linear()` is the wrong table for a ring; |
| 65 | +`distance_heuristic` uses no table at all. A wrapping quantity in the 256-palette |
| 66 | +with the circular table is metric-safe and stays in the index domain. |
| 67 | + |
| 68 | +| azimuth as | resolution | metric? | field shape | |
| 69 | +|---|---|---|---| |
| 70 | +| u16 raw + `linear()` | 0.0055° | **no** | not tileable | |
| 71 | +| **u8 palette + `circular()`** | **0.352° mean** | **yes** | `&[u8]` · 128 KB L1 · `U8x64` · AMX | |
| 72 | +| nearest-`n` | 0.972° mean | yes | single index | |
| 73 | + |
| 74 | +The palette azimuth beats nearest-`n` **and** keeps the field ergonomics. The |
| 75 | +previous entry was right about the ergonomics and wrong to treat them as |
| 76 | +disqualifying: the fix was never "abandon the direct path", it was **give the |
| 77 | +wrapping lane its own table**. |
| 78 | + |
| 79 | +**Rule:** **a bounded quantity's TOPOLOGY selects its table formula; it never |
| 80 | +decides whether the quantity belongs in the palette domain.** Amortization, L1 |
| 81 | +residency, `U8x64` lane and AMX plane are identical either way — that is what |
| 82 | +makes the substrate general rather than per-quantity. |
| 83 | + |
| 84 | +## 2026-08-11 — E-JUDGE-THE-FIELD-NOT-THE-ELEMENT-1 |
| 85 | + |
| 86 | +**Status:** FINDING `[G]` (crate-stated: `distance.rs:8-12`; `ndarray` |
| 87 | +`int8_tile_gemm::int8_gemm_amx_tiled(a_u8, b_i8, …) -> [i32]`). |
| 88 | + |
| 89 | +**Corrects `E-THE-REUSE-IS-THE-PROCESS-AND-IT-EXPOSED-A-FIT-PROBLEM-1` (below): |
| 90 | +its 10× measurement stands, its VERDICT is inverted.** |
| 91 | + |
| 92 | +**Operator:** *"you didn't factor in that due to normalized values the field has |
| 93 | +different ergonomics than the single value — meaning AMX matmul, tile ops etc."* |
| 94 | + |
| 95 | +**A normalized representation must be judged by what its FIELD does, not by what |
| 96 | +one element decodes to.** The 10× scored **angular reconstruction error** — the |
| 97 | +operation the substrate exists to avoid, and the exact metric this workspace |
| 98 | +already ruled out for scoring a one-way address over a retained original. Third |
| 99 | +instance of that error in one arc; this one landed three sections after the rule |
| 100 | +was written down. |
| 101 | + |
| 102 | +At field scale the ergonomics run the other way: |
| 103 | + |
| 104 | +| | nearest-`n` | direct `(polar, azimuth)` | |
| 105 | +|---|---|---| |
| 106 | +| direction collapses to | **ONE index**, 256-palette domain | 3 lanes, one 16-bit **circular** | |
| 107 | +| compare | 2 × `DistanceLut` u8 lookups — **L1 metric**, CAKES/CLAM-safe | **not a metric** — `distance.rs:8-10`, the 2π wrap "must never feed CAKES bounds" | |
| 108 | +| LUT | 128 KB, L1/L2-resident, **`U8x64`-friendly** | 65536² is not a table | |
| 109 | +| tile shape | a `&[u8]` plane → `int8_gemm_amx_tiled` **directly** | none | |
| 110 | +| decode to compare? | **no** | **yes** | |
| 111 | +| per-point error | 0.972° | 0.097° | |
| 112 | + |
| 113 | +**Resolution — split by OPERATION, not a winner.** Compare/search/correlate a |
| 114 | +field → the single-index path (this is what *"pay the inbound tax once"* buys, |
| 115 | +and why palette256 is the same pattern one rank down). Materialize one bearing → |
| 116 | +the direct path, 10× finer, but *"never reconstruct per element when the |
| 117 | +representation is normalized"* makes that the rare path, not the design centre. |
| 118 | + |
| 119 | +**Rule:** a per-element accuracy number is the round-trip metric wearing a |
| 120 | +different hat. A representation can win it and simultaneously destroy the |
| 121 | +index-domain comparison, the metric guarantee, and the tile shape that made the |
| 122 | +substrate worth building. **Ask what the field does under the ops you actually |
| 123 | +run — LUT, SIMD lane, tile/AMX — before ranking encodes.** |
| 124 | + |
1 | 125 | ## 2026-08-11 — E-THE-REUSE-IS-THE-PROCESS-AND-IT-EXPOSED-A-FIT-PROBLEM-1 |
2 | 126 |
|
3 | 127 | **Status:** FINDING `[G]` on the measurement (`crates/helix/tests/bearing_encode_paths.rs`, |
|
0 commit comments