{
 "item": "lookup-headroom",
 "batch": "e01-a-spline-gas",
 "kind": "behavior-preserving C0 lookup optimization (implementation headroom only; no edge claim)",
 "base": {
  "c0_url": "https://api.imdnotdead.fun/artifacts/8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40",
  "c0_source_sha256": "c68887cff61180e12ba2b1ceb333edf76a830f91f63b5d775a8806fb9ec08aca",
  "c0_source_sha256_check": "pass (solidity fence + trailing newline, 42,990 bytes)",
  "research_fetch": "amm-sim research @66604b3426d8e97a73e2c39940b9b4dece51cc73, fetch.sh: fetched 34 files, 0 mismatched"
 },
 "changes": [
  "Coefficient dispatch: the 306-leaf binary tree cw/cw0..cw19 (called once or twice per stripe, 16-20+ stripes per surface) is replaced by cwt(tb,c), which stores only the selected table's words (24..84) into a uint256[84] memory array once per callback; both surfaces (ask, mirrored bid) read it. Table bases 0/960/2304/3168/4512 are multiples of 16, so lane offsets are unchanged; the stripe index drops the base.",
  "Knot-span search: bas() takes m0; the x+64 basis of each axis (rows and columns) starts at the x basis span and walks forward (while kn(m+1)<=x) instead of a fresh binary search. Same span by construction: the unique m in [3,n-1] with kn(m)<=x<kn(m+1), m=n-1 at/after the end knot.",
  "Untouched: knots, coefficient values, Cox-de Boor arithmetic, Bernstein sd weights, clamps, filter, precision, fee rule, storage layout (slots 0..2), getName, afterInitialize. No assembly."
 ],
 "code_sha256": "85ba1c4be0cfe9414a2ad747191dc39f35c2f1bc36020901835552da688060f5",
 "code_bytes": 38167,
 "code_zb64": "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",
 "bundle_sha256": "e01d939ec8a71610c0671b9e31eda50f97b6b28edb58801349186c89bff5b0a6",
 "bundle_files": [
  "README.md",
  "gen.py",
  "proj/foundry.toml",
  "proj/src/Harness.sol",
  "proj/test/Diff.t.sol",
  "tracegen.py"
 ],
 "bundle_zb64": "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",
 "compiler": "solc 0.8.24+commit.e11b9ed9, optimizer 200 runs, viaIR, evm paris (forge 1.x, same settings and project for both builds)",
 "size": {
  "runtime_c0": 20605,
  "runtime_opt": 20128,
  "runtime_delta": -477,
  "initcode_c0": 20633,
  "initcode_opt": 20156,
  "initcode_delta": -477,
  "runtime_free_under_24576": 4448,
  "c0_runtime_matches_artifact": true
 },
 "differential": {
  "fees_rule": {
   "cases": 23166,
   "grid": "phase 0/1/2 x synced 0/1 x v at every sd level boundary (sd 0,4,8,12,16,20,26,34 bps exact, -1 wei, +1 wei; plus sd 50) x 13 w (incl. +-1600/+-2000 bps beyond the pw clamp) x 11 w2 (incl. clamp edges) with random sub-bps fractions",
   "nonzero_differences": 0,
   "gas_max_c0": 100110,
   "gas_max_opt": 89244,
   "gas_mean_c0": 80101,
   "gas_mean_opt": 73354,
   "per_case_delta_min": -10886,
   "per_case_delta_max": -4888
  },
  "surface": [
   {
    "table": 0,
    "cases": 8013,
    "nonzero_differences": 0,
    "gas_max_c0": 49717,
    "gas_max_opt": 45545,
    "gas_mean_c0": 41373,
    "gas_mean_opt": 38649,
    "per_case_delta_min": -4341,
    "per_case_delta_max": -1394
   },
   {
    "table": 1,
    "cases": 31089,
    "nonzero_differences": 0,
    "gas_max_c0": 51297,
    "gas_max_opt": 46444,
    "gas_mean_c0": 41662,
    "gas_mean_opt": 38978,
    "per_case_delta_min": -4968,
    "per_case_delta_max": -934
   },
   {
    "table": 2,
    "cases": 31089,
    "nonzero_differences": 0,
    "gas_max_c0": 49801,
    "gas_max_opt": 45372,
    "gas_mean_c0": 40552,
    "gas_mean_opt": 37913,
    "per_case_delta_min": -4596,
    "per_case_delta_max": -1048
   },
   {
    "table": 3,
    "cases": 31089,
    "nonzero_differences": 0,
    "gas_max_c0": 51356,
    "gas_max_opt": 46523,
    "gas_mean_c0": 41739,
    "gas_mean_opt": 39076,
    "per_case_delta_min": -4960,
    "per_case_delta_max": -909
   },
   {
    "table": 4,
    "cases": 31089,
    "nonzero_differences": 0,
    "gas_max_c0": 47485,
    "gas_max_opt": 43847,
    "gas_mean_c0": 39468,
    "gas_mean_opt": 36782,
    "per_case_delta_min": -3806,
    "per_case_delta_max": -1350
   }
  ],
  "surface_grid": "every grid node (i 0..320, j 0..nc1 incl. the clamped ends pw=320, p2=12/48; so every knot span and both bases of each axis) with k cycling 0..6 and tt in {0,1/2,1}, plus one random interior point per cell with random k 0..6 and tt in [0,1]. Surface gas for opt includes its own cwt load (in fees() one load serves both surfaces).",
  "traces": {
   "source": "replica2.py driven blind by real.py RealPolicy (Gaussian + qm, qm_k1e-5.json, pol_mid.json), seeds 61000..61019, every own-pool callback as int(v*1e18); replayed in order on a fresh deployment of each build after afterInitialize(100e18,10000e18)",
   "fixture_hash_all": "90aa87b841594e33e7283fa825d25ca461fc742daea485c6a1eb2946da287d6a",
   "calls": 218129,
   "init_equal": true,
   "nonzero_differences": 0,
   "afterSwap_peak_c0": 176065,
   "afterSwap_peak_opt": 164365,
   "afterSwap_peak_delta": -11700,
   "afterSwap_mean_c0": 107239,
   "afterSwap_mean_opt": 97349,
   "afterSwap_mean_delta": -9890,
   "largest_per_call_saving": 14507,
   "per_seed": [
    {
     "seed": 61000,
     "calls": 11612,
     "diffs": 0,
     "peak_c0": 167997,
     "peak_opt": 155841,
     "delta": -12156
    },
    {
     "seed": 61001,
     "calls": 9561,
     "diffs": 0,
     "peak_c0": 164236,
     "peak_opt": 153880,
     "delta": -10356
    },
    {
     "seed": 61002,
     "calls": 9394,
     "diffs": 0,
     "peak_c0": 173815,
     "peak_opt": 163357,
     "delta": -10458
    },
    {
     "seed": 61003,
     "calls": 10552,
     "diffs": 0,
     "peak_c0": 162197,
     "peak_opt": 151614,
     "delta": -10583
    },
    {
     "seed": 61004,
     "calls": 12739,
     "diffs": 0,
     "peak_c0": 167192,
     "peak_opt": 155188,
     "delta": -12004
    },
    {
     "seed": 61005,
     "calls": 11119,
     "diffs": 0,
     "peak_c0": 168193,
     "peak_opt": 157588,
     "delta": -10605
    },
    {
     "seed": 61006,
     "calls": 11266,
     "diffs": 0,
     "peak_c0": 151794,
     "peak_opt": 141204,
     "delta": -10590
    },
    {
     "seed": 61007,
     "calls": 10118,
     "diffs": 0,
     "peak_c0": 167318,
     "peak_opt": 156183,
     "delta": -11135
    },
    {
     "seed": 61008,
     "calls": 10161,
     "diffs": 0,
     "peak_c0": 173538,
     "peak_opt": 161353,
     "delta": -12185
    },
    {
     "seed": 61009,
     "calls": 10708,
     "diffs": 0,
     "peak_c0": 162275,
     "peak_opt": 152938,
     "delta": -9337
    },
    {
     "seed": 61010,
     "calls": 9743,
     "diffs": 0,
     "peak_c0": 176065,
     "peak_opt": 164365,
     "delta": -11700
    },
    {
     "seed": 61011,
     "calls": 11261,
     "diffs": 0,
     "peak_c0": 164081,
     "peak_opt": 152371,
     "delta": -11710
    },
    {
     "seed": 61012,
     "calls": 12543,
     "diffs": 0,
     "peak_c0": 165258,
     "peak_opt": 152298,
     "delta": -12960
    },
    {
     "seed": 61013,
     "calls": 11024,
     "diffs": 0,
     "peak_c0": 158029,
     "peak_opt": 147412,
     "delta": -10617
    },
    {
     "seed": 61014,
     "calls": 9565,
     "diffs": 0,
     "peak_c0": 173892,
     "peak_opt": 163458,
     "delta": -10434
    },
    {
     "seed": 61015,
     "calls": 9378,
     "diffs": 0,
     "peak_c0": 171389,
     "peak_opt": 162379,
     "delta": -9010
    },
    {
     "seed": 61016,
     "calls": 12594,
     "diffs": 0,
     "peak_c0": 162711,
     "peak_opt": 150887,
     "delta": -11824
    },
    {
     "seed": 61017,
     "calls": 12707,
     "diffs": 0,
     "peak_c0": 157311,
     "peak_opt": 143998,
     "delta": -13313
    },
    {
     "seed": 61018,
     "calls": 10385,
     "diffs": 0,
     "peak_c0": 161085,
     "peak_opt": 151039,
     "delta": -10046
    },
    {
     "seed": 61019,
     "calls": 11699,
     "diffs": 0,
     "peak_c0": 172790,
     "peak_opt": 161823,
     "delta": -10967
    }
   ],
   "gas_note": "forge gasleft() around each external call within one test transaction (warm storage/accounts after the first call), so absolute numbers sit below the engine's (C0: 208,775 engine, 194,051 pyrevm); deltas are like-for-like. Not an engine measurement."
  },
  "fee_equality": "exact: every compared fee (bid and ask, int WAD) is bit-identical; no rounding change exists to report"
 },
 "commands": [
  "python3 -I w/gen.py c0/Strategy.sol w/Strategy.sol",
  "python3 -I w/tracegen.py amm proj/fixtures 61000 20",
  "cd proj && forge test -vv  -> 7 passed, 0 failed (273 s)"
 ],
 "gates": {
  "exact_fee_equality_vs_c0": "pass (0 of 218,129 trace calls, 0 of 23,166 fee cases, 0 of 132,369 surface cases differ)",
  "no_assembly": "pass",
  "storage_slots": "3 (unchanged)",
  "size_under_24576": "pass (20,128)",
  "whole_candidate": "pending: tell port integration, fees within 0.01 bps of tellpol.TellPolicy, engine afterSwap peak <=245,000 / 0 OutOfGas, amm-match validate, engine scoring - none run here (no engine setup in this item)"
 },
 "claims": "Implementation headroom only: about 11.7k gas off the forge afterSwap peak, about 9.9k off the mean, 477 runtime bytes. No edge gain is claimed; behavior equals C0 on every case tested.",
 "not_done": [
  "amm-match validate and engine gas_stats (no engine in this item)",
  "further lookup work considered but not done: reusing bases between the ask surface and the mirrored bid surface; fusing the sd-Bernstein weights into the lanes before the column contraction"
 ]
}