feat(08.1-01): ARG3 codec + uphill CH query — ALT deleted, one search path (GREEN)
- graph.ts: ARG3 layout (magic 0x41524733, version 3, chShortcutCount u32 @60, reserved @64/@68) with the CH suffix chRank ++ shortcut CSR; fail-honest decode (ARG1/ARG2 -> null, chShortcutCount 0 -> null, exact-size before any allocation, 4-byte alignment load-bearing); loud ch-block encode validation - ch-query.ts: routeCH — bidirectional uphill search (strict rank filter, forward originals+shortcuts, backward reverse views incl. shortcuts), edge-ref meet probe, iterative via-unpacking (edge-aware: a parallel original edge is never expanded as a shortcut; DERIVE prefers the cheaper of original/shortcut), seconds re-summed from the unpacked original-edge path. STOP RULE: min(topF, topB) >= mu — the classical sum rule is unsound under the rank filter (Q1 caught it: 36 vs 24) - astar.ts: routeAstar validates + delegates every request to routeCH; ALT/BH internals, clean-column memo, landmark tokens DELETED (D-04); classifyTurn/deriveSteps untouched - landmark.ts + landmark.test.mjs deleted (D-05); index.ts additively exports contractGraph + CH constants + routeCH - snap.test.mjs: S3's encode moved to the ARG3 ch block (3-node star — a 2-node graph can carry no valid shortcut); committed-fixture S-cases suspended until task 3 (Rule 3: same pattern as G7/A1-A6) - routing suite: 86 passed, 0 failed; typecheck clean
This commit is contained in:
@@ -90,7 +90,7 @@ function toArrayBuffer(buf) {
|
||||
function syntheticCh() {
|
||||
return {
|
||||
rank: Uint32Array.of(1, 0, 2),
|
||||
shortcutStart: Uint32Array.of(0, 1, 1, 2),
|
||||
shortcutStart: Uint32Array.of(0, 1, 1, 1),
|
||||
shortcutTarget: Uint32Array.of(2),
|
||||
shortcutSeconds: Float32Array.of(12),
|
||||
shortcutVia: Uint32Array.of(1),
|
||||
|
||||
Reference in New Issue
Block a user