Compare commits

...

22 Commits

Author SHA1 Message Date
Alex Lytvynenko 4da2e4fb05 docs: preserve the published offset migration evidence verbatim
Archive the complete ceadc86fe PR body in a per-entry finding before making
the description shorter. Preserve every old/new value, case, proof boundary,
archive hash and historical measured revision without relabelling it.

The new gen1320/gen1851 evidence remains in its own committed findings.
No source, expectation, input, tolerance or case-selection changes.

Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko dd6cf9555b goldens: prove gen1851's receiver is unchanged by its outward trim
Continue #1914 with one complete six-step/147-scalar row, six moved values.
Extension is disabled throughout, no extended surface exists, and the trim
requests a bigger domain. Its gets_bigger branch therefore trims neither
an extension nor the owned original base. Grade the later jets on the
original net, not a purported trimmed or kernel-generated net.

All six 80/160-digit input-only Taylor observations pass unchanged relative
1e-9: max discrepancy 9.048670857263963e-13, drift <=1.3065385952206204e-76.
All 98 numerical/scope controls pass. The private evidence decoder uses the
known status/four-scalar query shape only after proving the trim is a no-op;
the default decoder still refuses trim. No production operation is replaced.
Actual net trims, enabled extension, failed trims and base edits stay excluded.
gen2214 independently disagrees and is not blessed.

| Case | Components / max relative error | Full original input SHA-256 | Old → new checksum blocks / unchanged n |
|---|---|---|---|
| `gen1851` | 6 / `9.04867e-13` | `71955d6e58899aa90a8f3e07a5fd12adce0d1f9b008a5af7cf74c613054d7532` | `[[61829.67557510773, 61888.01368940549, 3859448.1427769545]]` → `[[61831.18435404368, 61889.99122955711, 3859566.2962446106]]` / `147` |

Common fields remain deferred=null, error=null, ints={}, topology=null;
out.n remains 147. Every other golden and all 88 known failures are unchanged.
All 3182 cases remain as 3094 goldens + 88 known failures. Projected 169
supported cases / 830 components / 186 ordinary differences pending the gate.

The finding retains exact old/new values, all observations, original inputs
and bits, source branch proof and the readback-verified 71-member archive.
No construction, flag, tolerance, floor, production decoder, crop or skip
changes. No full kernel-suite, canonical-CI pass or readiness claim follows.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko 60c321ddd4 goldens: prove gen1320's polynomial linear end-span continuation
Continue #1914 with one complete row / nine moved components. The original
unit-weight q=1 terminal span uniquely continues through the inspected G1R
endpoint formula, independent of extension chunks or exact join-knot removal.
No source-order replay or kernel-generated extended net supplies expected jets.
Exact-rational separated boundary hulls establish nonclosure; explicit mask
zero and the in-span u value establish the selected extension direction.

All nine 80/160-digit input-only Taylor components pass unchanged relative
1e-9, max error 9.324089962188992e-14, drift <=6.182732331065606e-78.
All 92 numerical/scope controls pass, including every previous model after
the explicit opt-in temporary evaluator hooks. Default helpers stay strict.
The independent affine-plane and saddle controls retain exact closed forms.
Rational/curved extensions, ambiguous boundaries and edits remain excluded.

| Case | Components / max relative error | Full original input SHA-256 | Old → new checksum blocks / unchanged n |
|---|---|---|---|
| `gen1320` | 9 / `9.32409e-14` | `01537720249ce9b50614cc1147ba7646e678602cb601657b2468bd837ce52399` | `[[8.083516148205456, 338.29768636282773, 410.2475809158631]]` → `[[8.083506601475959, 338.297647168599, 410.2473283613418]]` / `56` |

Common fields remain deferred=null, error=null, ints={}, topology=null;
out.n stays 56. The full three-step script executes; no suffix crop or skip.
Every other golden and all 88 known failures are unchanged. All 3182 cases
remain as 3094 goldens + 88 known failures. Projected 168 supported cases /
824 components / 187 ordinary differences, pending the real unit gate.

The finding retains old/new values, all observations, exact input/bit identity,
state proof, controls, initial Decimal-equality control failures and the
readback-verified 76-member archive. No production formula, flag, tolerance,
floor or decoder changes. No body validity/volume or full-suite/CI pass claim.
The correctness, attribution-review and approval-blocked CI holds remain.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko e1ce504907 goldens: prove the explicit VMax clamp in gen1332
Continue #1914 with one complete row / three moved components. Extension
stays enabled in the original input, but the explicit original side mask
11 includes VMax=8 and clamps the sole outside request before extension.
Independent 80/160-digit original-net jets establish both nonperiodicity
position tests (separation/threshold >6.632e12, regular first samples) and
the D(0,3) at the clamped point, not a constant continuation's derivative.

All three components pass unchanged relative 1e-9: max error 8.063531413806036e-14,
precision drift <=1.8686238951724364e-77. All 85 numerical/scope controls pass.
No tolerance, floor, flag, original input, operation, crop or skip changes.

| Case | Components / max relative error | Full original input SHA-256 | Old → new checksum blocks / unchanged n |
|---|---|---|---|
| `gen1332` | 3 / `8.06353e-14` | `cb46fb52544fb4c84e3a64deca2346d55fc1ad7f94adec553f4e41652db65660` | `[[68487.9127286635, 73586.6520814705, 1550175.2367883257]]` → `[[30395.004642320324, 31489.622915038668, 1034470.1990414166]]` / `72` |

Common fields remain deferred=null, error=null, ints={}, topology=null;
out.n remains 72. Every other golden and all 88 known failures are unchanged.
All 3182 cases remain as 3094 golden rows and 88 known failures. Projected
167 supported cases / 815 components and 188 ordinary differences, pending
the actual gate. The source, full inputs/bits, values, state proof, exclusions
and readback-verified 64-member archive are in the committed finding.

gen0590's first periodicity sample reaches a normal fallback; gen0962's
swap does not remap its stored mask. Neither numeric-only candidate is
approved. No actual-extension, full-suite, CI success or readiness claim.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko 5f4d1533f6 docs: retain six published named-slot proofs verbatim
Preserve #1914's complete six-case/21-component section from the published
beb1eb184 description before replacing its inline duplicate with a link.
Verify exact text equality, including input hashes, observations, bounds
and original collector/control/archive provenance. No new execution or
reblessing is implied; all numerical source, goldens and failures stay intact.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko f569fa63af goldens: prove two prefixes where extension is enabled but unused
Continue #1914 with 12 input-only 80/160-digit Taylor jet observations.
OffsetSurface starts without an extended surface; every audited prefix
point is within the original direct B-spline domain, so select_surface
reaches neither extension nor clamping. Actual extension remains unapproved.
All 78 numerical/scope controls pass; max relative error 8.805332234651928e-14
under unchanged 1e-9, precision drift <=4.472617148231448e-77, no new floor.

gen2007 proves step 0 before swap/equality, 32/36 scalars and four unchanged
suffix scalars. gen2248 proves its state/eval prefix before split/trim/reverse,
74/308 scalars and all 234 suffix scalars bit-identical. No suffix correctness,
post-edit derivative or actual extension claim. Every complete case still runs.

| Case | Components / max relative error | Original input SHA-256 | Old → new checksum blocks |
|---|---|---|---|
| `gen2007` | 9 / `1.08547e-14` | `40979f91a5c8143e5b0b2e560902302e5bc30d21b034c5bc5e5bee592e922ac6` | `[[8385.129761675184, 10208.861909515392, 240531.36113004576]]` → `[[7433.183654517214, 8963.545179952707, 224246.08082010786]]` |
| `gen2248` | 3 / `8.80533e-14` | `a8b8b0afe101dabe69c50ee63ee7897ba829c8c8873bd9089fde1faf5ce3d839` | `[[156372.75134309038, 252429.00380531867, 19263689.92973941], [40312.70837088957, 63077.20645060704, 274696.5340730896]]` → `[[155970.61055021366, 252143.7086417839, 19234501.757323023], [40312.70837088957, 63077.20645060704, 274696.5340730896]]` |

Common fields remain deferred=null, error=null, ints={}, topology=null;
out.n stays 36 / 308, including gen2248's unchanged full second block.
Every other golden and all 88 known failures are unchanged. All 3182 cases
remain as 3094 golden rows and 88 known failures. Projected 166 supported
cases / 812 components and 189 ordinary differences pending the actual gate.
gen2690 independently disagrees and is not blessed. No numerical source,
input, guard, production decoder, tolerance, floor, crop or skip changes.
The finding retains all observations, inputs, bits, boundaries, source proof
and the readback-verified 56-member archive. No readiness or CI pass claimed.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko b10d81acb5 goldens: record two independently wrong named-slot query prefixes
Continue #1914 without changing #2717's implementation or design. gen0757
and gen2243 return D(2,0) slots overwritten by the later D(1,1) branch.
An input-only 80/160-digit Taylor oracle independently proves all six named
components wrong by 0.9128 to 1.6373 relative, with precision drift <=3.931e-77.
All 71 numerical/scope controls pass. No tolerance or floor is changed.

gen0757 retains its receiver distance after the returned base_offset and
uses the explicit clamp-to-domain jet; gen2243's proof is before its swap.
Original complete inputs/outputs, exact bits, prefix boundaries, expected
values and the 49-member verified archive are in the committed finding.
This certifies neither the overwriting expression nor any suffix.

Remove these two wrong complete goldens, replacing neither with another
wrong result. Both full cases keep executing under case-specific #2717
known-failure entries. Every other golden and existing failure is unchanged.

| Case | Full original input SHA-256 | Prefix steps / scalars | Removed old golden block / full n |
|---|---|---|---|
| `gen0757` | `a7fff71f532ef0b76a0f9aace5c2d210fa393ff426cb68f470377a44d426a08b` | `2/5 steps, 66/108 scalars` | `[[45835.32261187165, 45951.766035862245, 580801.8107888201]]` / `108` |
| `gen2243` | `b5c1b0a415107215e7fdcd7fc301a26bf021c40add31c08ae54074e3f9e07f4d` | `3/6 steps, 63/137 scalars` | `[[30474.99107836607, 30522.408270029144, 3002299.3746962883]]` / `137` |

Common removed-row fields: deferred=null, error=null, ints={}, topology=null.
All 3182 cases remain as 3094 golden rows and 88 known failures. Supported
replacements stay 164 cases / 800 components; projected ordinary differences
191 pending the actual gate. No production crop, skip, guard or geometry edit.
No full-suite, canonical-CI pass, review resolution or readiness claim.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko bb28c155ed goldens: prove seven offset scripts without cropping production cases
Continue #1914 with 29 independently graded moved components. Input-only
80/160-digit Cox-de Boor/Taylor jets satisfy strict relative 1e-9, with
max error 7.941402674945828e-14 and precision drift 9.382196956836735e-78.
All 66 numerical/scope controls pass. No tolerance or floor is changed.

gen0294 and gen1956 use complete-script proofs. The other five use decoded
prefixes containing every moved bit and verify every full suffix bit against
the four-term counterfactual. No suffix correctness or post-transform claim
follows. Production still runs each complete original case. Default evidence
decoding stays strict; no production decoder or execution skip is introduced.

Only these seven complete retained collector encodings change. The finding
records all 29 observations, original input identities, exact boundaries and
suffix digests, exclusions and the readback-verified 44-member archive.

| Case | Proof steps / raw scalars; unchanged suffix | Components / max relative error | Input SHA-256 | Old → new checksum blocks |
|---|---|---|---|---|
| `gen0046` | `4/6 steps, 131/187 scalars; 56` | 3 / `1.37231e-15` | `dbd153151a9ece86d7374df7e75c3b8fd643697463040a2c9b0aca8d7078246c` | `[[77121.34624082278, 78371.89588151565, 7204413.02628398]]` → `[[77127.56162394208, 78413.58757987301, 7204937.948856801]]` |
| `gen0294` | `7/7 steps, 139/139 scalars; 0` | 3 / `6.07478e-15` | `8e631a42bc095bbf10e999e257af4b43316e25bff9aa5b110989c4598f8075d1` | `[[131571.70347178396, 142646.29819385172, 8950770.303338341]]` → `[[131585.2632002976, 142668.59266738236, 8951797.094917087]]` |
| `gen0715` | `4/6 steps, 140/146 scalars; 6` | 8 / `7.9414e-14` | `3095b349ba413411105bf66000545935862075cf6b359fe85ebb31e65a068ad5` | `[[77220.71046083543, 77311.38053866001, 3702379.153818082]]` → `[[77227.07637822005, 77297.60213367597, 3703184.8790371185]]` |
| `gen1107` | `4/5 steps, 101/106 scalars; 5` | 6 / `6.85615e-15` | `9ea3bc28cade8ee485e49065c45b30dbad3f665b0e575a3b437e41e607b4185f` | `[[46154.69065168403, 46690.47230266395, 1392869.5927645955]]` → `[[46145.861751782475, 46681.36711117941, 1391635.70220002]]` |
| `gen1871` | `4/5 steps, 98/103 scalars; 5` | 3 / `3.18996e-15` | `b1f76deb657f9c21511623f227d889bc3682961414b54382f3dc3db102abd84d` | `[[30452.32264385231, 31097.267325821787, 505666.83287312003]]` → `[[30457.86551369243, 31094.125835654002, 506083.6793920865]]` |
| `gen1956` | `2/2 steps, 68/68 scalars; 0` | 3 / `9.69707e-15` | `025de42ef6f9465e60ab68ca104811b32a4bc5d9bd59e3289a451edb3d5fd2ff` | `[[31752.321348733272, 33425.56012012197, 595083.5858024094]]` → `[[31972.454180961, 33392.31834752314, 609529.5325767717]]` |
| `gen2606` | `2/5 steps, 22/41 scalars; 19` | 3 / `2.37756e-15` | `90597c56d3e9efbe5c336f44a7b90af5dcbe4059a4667c1a442afa29d7ea3c79` | `[[3.6721180340205315, 9.99814166857267, 125.20427053028689]]` → `[[3.8326148961392716, 10.356535523557282, 128.5298394660693]]` |

Common fields remain deferred=null, error=null, ints={}, topology=null;
out.n stays 187 / 139 / 146 / 106 / 103 / 68 / 41. Every other golden row
and all 86 known failures are unchanged. All 3182 cases remain selected.
Projected 164 supported cases / 800 components / 193 ordinary differences
pending the actual gate. Raw collector evidence retains its measured head,
not the refreshed branch. No canonical-CI/full-suite pass or readiness claim.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko 94e3cbe541 goldens: prove five parameter-edit scripts from their input nets
Continue #1914 with no production, input, tolerance, floor or failure change.
All 24 moved components satisfy strict relative 1e-9 against independent
80/160-digit input-net Taylor jets: max error 1.99955e-12, drift 1.13002e-76.
All 59 numerical/scope controls pass, including affine-plane closed forms,
nonuniform-knot reflection, wrong-value/status rejection and the real case.

Reverse reflects the clamped knots/net and keeps d; swap transposes it and
negates d. Extension, failed edits, aliases and ambiguous knot sides stay
excluded. gen0686/gen0803/gen2531 changed jets precede their edit suffix;
gen0909 and gen2960 actually grade post-swap/post-reverse derivatives.
gen0304 and gen0672 independently disagree and stay unapproved.

Only the following five complete actual collector encodings change. All
other rows and all 86 known failures remain byte-identical; all 3182 cases
remain selected. Projected 157 supported cases / 771 components, 200 ordinary
differences pending the actual gate. Full observations, original input hashes
and bits, controls and verified archive are in the committed finding.

| Case | Components / max relative error | Input SHA-256 | Old → new checksum blocks |
|---|---|---|---|
| `gen0686` | 6 / `1.99955e-12` | `9d08376d9c36e5392c5d09ca19e7a42d951006834726e090c52d2cd7fdb10dd9` | `[[121930.35080477943, 122286.7144167371, 8701121.039546246]]` → `[[121962.3389298341, 122224.82699030975, 8705193.75695359]]` |
| `gen0803` | 9 / `2.23887e-15` | `1c9b9b7c8465da58ee4de50b4a92ba6086af384f7d7967df546742c35243d4a8` | `[[30433.220442247508, 30463.821946298885, 503538.46555445157]]` → `[[30433.06458783185, 30463.6612749778, 503524.44087460113]]` |
| `gen0909` | 3 / `5.29685e-13` | `4bb845ec023ff9aa5ed7af2f2175f1dc52125b80adbb1a3f9a708a8c9fb7c57a` | `[[76256.28041470288, 76301.39173228155, 4336610.869009565]]` → `[[76255.8695864608, 76301.01981243513, 4336553.392578878]]` |
| `gen2531` | 3 / `1.30999e-14` | `be2221978e98e31d856b00abc7753267057b708f92496c105d0271c8ae329689` | `[[45825.10682569999, 45897.16292421347, 1451228.6467945287]]` → `[[45826.31522262935, 45897.31002906505, 1451250.566334015]]` |
| `gen2960` | 3 / `4.3237e-14` | `0cad4c75b7b482c04b0a69061ef20d3065743f94ab5eef5696ea3b4903b70865` | `[[30413.486952040126, 30468.854227191732, 1445253.6014927593]]` → `[[30413.479977829935, 30468.838392777052, 1445253.4163972281]]` |

out.n stays 204 / 108 / 147 / 87 / 86. No status/topology changes.
No full-suite or canonical-CI pass, review resolution or readiness claimed.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko da4f2dff79 goldens: prove five receiver jets across returned offsets and inversion queries
Continue #1914 without changing formulas, inputs, tolerances or #2717's contract.
base_offset returns an owning copy for a direct B-spline; it does not assign the
receiver. With extension disabled throughout, step_inv leaves that receiver's
geometry/distance intact; its unchanged three-scalar payload is decoded but is
never graded as a derivative. Other kinds/nullable results remain excluded.

All 26 moved components in gen0136, gen0287, gen1623, gen1782 and gen2425 pass
strict relative 1e-9 against the independent 80/160-digit input-net Taylor
calculation of S+d(Su x Sv)/|Su x Sv|. Max error 1.17606e-12, precision drift
1.69242e-76. The last three use explicit clamping from the original knots.
All 52 controls pass. gen2558 independently disagrees and is not blessed.

Only these five complete retained actual runner encodings change. All other
3091 rows and every one of the 86 known failures remain byte-identical; all
3182 cases are retained. Total supported 152 cases / 747 moved components;
projected 205 ordinary differences, pending the real gate. Preserve exact
inputs/bits, full observations, disagreement, executable model/controls and
old/new encodings in the hash-verified archive and committed finding.

| Case | Components / max relative error | Input SHA-256 | Old → new checksum blocks |
|---|---|---|---|
| `gen0136` | 3 / `5.79439e-15` | `4515a282fe90fd6359b6858d6d7c8301dc3f80f89eb2f6e707b2f2a1d8695052` | `[[91876.89527025135, 92224.64165636596, 3709608.8064747667]]` → `[[91973.71856665419, 92226.07023677968, 3722151.3675662098]]` |
| `gen0287` | 3 / `1.17606e-12` | `e51e3bd2ec6e6c620c88445e04bb4153986ad684128ca811a218da31284c462f` | `[[106623.85073001102, 106758.36789985334, 8192383.812744899]]` → `[[106623.09246265274, 106758.03749782688, 8192286.540092921]]` |
| `gen1623` | 8 / `1.22953e-14` | `857b21820fa862beba1580ea3dd53eb5debdd8553e0b86d9c5790abee8e31467` | `[[937.572243299023, 1479.9961428738736, 24633.179569469605]]` → `[[898.8254877713206, 1424.9679762169394, 23984.775109513852]]` |
| `gen1782` | 3 / `1.9561e-14` | `015844bf6a82125fa52f3b3cbbd7dcf3753397ed5a8a9e725be22de887cb8fff` | `[[77236.60030788192, 87804.80267997787, 4353949.4496201]]` → `[[76718.60999413418, 86553.13132175046, 4319698.866069493]]` |
| `gen2425` | 9 / `3.87624e-14` | `3e08eda805173750cd4cb0f3a6bcf45b221e3853587034ab96ed05a4060e286e` | `[[994.256720147682, 1013.7863198590826, 32902.28326575608]]` → `[[995.7214865508853, 1015.1216311978034, 32929.3849376887]]` |

out.n stays 134 / 191 / 45 / 133 / 37. All statuses/topology/other fields stay
unchanged. No new absolute floor, construction, failure entry or gate change.
No full-suite or canonical-CI success, review resolution or readiness claimed.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko aa01457f41 docs: preserve the published clamped-jet evidence before body compaction
Retain the eighteen-row old/new section from #1914 at 2ef53c83e verbatim in a dedicated finding. The historical exact head and 85-failure count are explicitly scoped to that publication. No source, expectation, input, assertion, outcome or evidence conclusion changes.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko 0ed4ae056f goldens: prove canonical revolution jets and retain a named-slot defect
Continue #1914 without changing production, input selection or the #2717 contract.
Derive the rational full turn from original B-spline generator inputs, weights,
knots, axis and origin, never a kernel-generated control net. All 62 moved
components in thirteen cases pass the strict unchanged 1e-9 relative rule:
maximum error 3.689e-12, separate-net precision drift below 2.11e-76.
All 48 numerical/scope controls pass, including rational axial derivatives,
axis scale/orientation, explicit clamp and wrong-value rejection.

The unchanged gen1603 three-step/35-scalar prefix demonstrates #2717: step 2
names D(2,0), later overwritten by D(1,2), at out[27..28]. Independent expected
98.17705633871186 / -62.64369053230619 versus observed -682.320875639607 /
-274.2373622424093. Remove its wrong golden and add its issue-backed known
failure; the entire case still runs, and no alias implementation is taken.

All 3182 cases remain as 3096 golden rows plus 86 known failures. Every other
golden row and failure entry is unchanged. Total supported 147 cases / 721
moved components; projected remaining ordinary differences 210, pending the
actual gate. Preserve old/new encodings, mathematical construction, controls,
exact input hashes/bits, exclusions and the verified archive in the new finding.

| Case | Components / max relative error | Old → new checksum blocks |
|---|---|---|
| `gen0078` | 9 / `1.56099e-14` | `[[60992.32232773774, 62007.82172754136, 3573365.621681268]]` → `[[60955.3429329313, 61630.4439708014, 3570310.42044418]]` |
| `gen0171` | 3 / `2.40474e-14` | `[[30460.067354949344, 30789.234141913264, 1571002.9046867639]]` → `[[30170.97766234359, 31175.217379802565, 1563841.1838079793]]` |
| `gen0510` | 2 / `3.49776e-15` | `[[136783.91504548964, 136940.61322075027, 12115341.037492398]]` → `[[136755.1149473944, 136912.07291654628, 12111572.593217228]]` |
| `gen0688` | 3 / `1.9788e-15` | `[[31346.461684132, 32403.592700681234, 1772295.8567843311]]` → `[[30781.309826793167, 32510.58038801976, 1753301.5773981945]]` |
| `gen0913` | 3 / `1.51772e-13` | `[[61750.73067260197, 61840.21030969888, 3698631.549175109]]` → `[[61633.6609800661, 61723.14061716303, 3688650.729457595]]` |
| `gen0965` | 6 / `3.92942e-16` | `[[31437.46049255547, 31844.361634149758, 3185201.893145722]]` → `[[31020.49497003035, 33310.32052049644, 3179826.550622901]]` |
| `gen1021` | 3 / `1.32677e-14` | `[[32022.521603079706, 32221.489579301622, 622051.0166188008]]` → `[[32040.91340095389, 32239.881377175807, 623490.583575049]]` |
| `gen1336` | 3 / `1.80575e-15` | `[[30508.18586005638, 30627.932843864983, 508130.084364765]]` → `[[30493.239429126246, 30634.94737160066, 507062.21452469326]]` |
| `gen1523` | 3 / `3.02139e-15` | `[[106762.79310347415, 107249.71947489904, 8025630.370844599]]` → `[[108515.03086142626, 109001.95723285116, 8245925.889540591]]` |
| `gen2083` | 3 / `9.18182e-14` | `[[76180.35956883941, 76708.58602231681, 3861956.0360428616]]` → `[[76207.07582306274, 76693.32645472689, 3865576.97943913]]` |
| `gen2174` | 9 / `3.68895e-12` | `[[30567.472013004335, 30885.59102480571, 513955.18919101433]]` → `[[30404.688016921584, 30612.68300826498, 501435.5076105441]]` |
| `gen2176` | 6 / `9.06304e-14` | `[[30807.70523767886, 31289.921984959317, 534969.6617323706]]` → `[[30716.53174207574, 31302.716083319912, 528245.5167390216]]` |
| `gen2792` | 9 / `5.18444e-15` | `[[61142.0736249404, 61506.22354610884, 3704443.051684439]]` → `[[60914.84419372687, 61285.2585890741, 3688211.2636018256]]` |

Removed wrong gen1603 encoding: n=46,
blocks=[[3650.1057913563527,6286.665825084098,118136.81376043486]].
No tolerance/floor, compatibility flag, source, runner or topology change.
No full-suite, canonical-CI success, review resolution or readiness claimed.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko 162101a576 goldens: prove eighteen clamped boundary jets from input nets
Continue #1914. With extension disabled throughout, select_surface clamps the evaluation point to the original domain before differentiating. Independently grade the jet at that point, not derivatives of a constant extension. Every one of 102 moved components agrees with the original-net Taylor series at 80/160 digits; maximum relative discrepancy 4.364e-13, unchanged rule 1e-9, maximum precision drift 3.453e-77. All 37 numerical/scope controls pass.

Only these eighteen complete collector-encoded rows change. gen1146, gen2298 and gen2832 remain numerical disagreements, not blessed or automatically attributed to #2717. Actual extensions, wrappers with different domains, singularities, unsupported edits/orders and named-slot aliases remain outside this proof. All 3182 cases and 85 known failures remain. Total supported: 134 cases / 659 moved components; 224 ordinary differences remain unresolved.

Preserve the preceding twenty copy/setter rows and their already-published old/new proof verbatim in a finding to keep the PR body within its size limit. No earlier conclusion is changed by that relocation.

| Case | Components / maximum relative error | Old → new checksum blocks |
|---|---|---|
| `gen0096` | 3 / `5.2088e-14` | `[[-6773770209.875433, 64424015402.72274, -378749722047.2987]]` → `[[-6870563819.263274, 64495408259.89502, -386553674290.37585]]` |
| `gen0106` | 9 / `7.5415e-14` | `[[31626.719296583855, 33363.51465493481, 2099118.839468814]]` → `[[31510.658539520075, 33182.16476097925, 2093273.1365587397]]` |
| `gen0117` | 3 / `3.7514e-14` | `[[30393.92240119993, 30444.3317490507, 501900.592222631]]` → `[[30393.952077675916, 30444.158329310143, 501902.39235053613]]` |
| `gen0134` | 6 / `4.3632e-13` | `[[37.832510687021795, 104.14284964357064, 1054.742957704554]]` → `[[39.06487390981253, 102.07201454768582, 1103.5111544935114]]` |
| `gen0439` | 9 / `1.588e-14` | `[[-13493691.441181729, 13717537.718196781, -1869604804.9283178]]` → `[[-5556688.228706748, 5780534.505721803, -802954287.5887265]]` |
| `gen0470` | 6 / `3.6124e-14` | `[[30411.56311392412, 30538.255424358227, 2722225.4981703223]]` → `[[30411.02807801994, 30538.749829700955, 2722215.508914114]]` |
| `gen0520` | 6 / `2.0478e-14` | `[[2603.181323610652, 101149.6432820234, -150409.28755995663]]` → `[[4478.212077142718, 91793.59915509017, -110231.78941596425]]` |
| `gen0975` | 3 / `2.4293e-14` | `[[-0.07499960999706787, 0.28311173511413507, -1.263414230268762]]` → `[[0.0019536212055459258, 0.26423357801083436, -0.039611592564807424]]` |
| `gen1005` | 9 / `9.107e-14` | `[[28217.743974127192, 38093.608383810904, 1863000.1361175987]]` → `[[28256.151890684785, 38207.22373499281, 1865588.3408999464]]` |
| `gen1026` | 3 / `9.0952e-15` | `[[45771.34220991706, 45864.49375112448, 577600.5831079823]]` → `[[45772.14833280894, 45865.584040146976, 577658.7064678086]]` |
| `gen1047` | 3 / `8.4307e-14` | `[[31208.26635863553, 32223.47216717072, 562497.5647403828]]` → `[[31221.666358372844, 32308.728980748914, 563452.3343034461]]` |
| `gen1501` | 6 / `4.6519e-15` | `[[76938.6903388469, 77235.62454754181, 6127941.733940306]]` → `[[76034.63657112679, 77163.63088496617, 6061737.160377767]]` |
| `gen1815` | 3 / `7.9991e-14` | `[[30455.168428658406, 30493.41594569247, 1691412.366477158]]` → `[[30459.764928504002, 30490.46183200792, 1691573.0880891723]]` |
| `gen2309` | 3 / `2.8838e-13` | `[[-2130345613.6145353, 50165393450.44275, -376803058672.42773]]` → `[[-2129529154.1441603, 50151508983.73155, -376729189548.8684]]` |
| `gen2448` | 9 / `1.1976e-14` | `[[35233.48643230344, 35764.10016249043, 1427262.1225083272]]` → `[[19456.819917104032, 54845.74218580647, 1214690.186811323]]` |
| `gen2507` | 6 / `1.6393e-14` | `[[60864.74652840865, 60955.2526814626, 3623994.1771435984]]` → `[[60872.637104188514, 60959.125270976685, 3624559.095594456]]` |
| `gen2629` | 3 / `9.9247e-15` | `[[-0.7952289704799329, 21.961465706434275, -1.3129666919095415]]` → `[[-0.3803237369067746, 22.131710411144315, 10.81145447121247]]` |
| `gen2869` | 12 / `5.2903e-15` | `[[43578.856643134844, 50713.272901409575, 2669836.6176526896]]` → `[[45556.57516403698, 48850.43526261595, 2728328.359954016]]` |

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko 6e7068cdce goldens: prove twenty copy/setter scripts from their receiver state
Continue #1914 without changing its four numerical terms or #2717's contract.
The runner's create_offset and split return separate surfaces; neither assigns
to its receiver. Explicit set_dist/set_allow steps are tracked independently.
Every one of the 89 moved receiver-derivative components is evaluated from its
original input B-spline net and active scalar distance at 80/160 decimal digits.
Maximum relative error 2.256e-12, unchanged limit 1e-9, maximum precision drift
2.468e-76. All 32 numerical/scope controls pass. True named-slot aliases, changed
returned-copy metadata, uncovered outputs, other edits and extended/clamped,
singular or unsupported-order evaluations fail closed.

Only these twenty complete collector-encoded rows change. All 3182 cases, 3097
ordinary rows and 85 known failures remain; unrelated rows are byte-unchanged.
Total supported: 116 cases / 557 moved components. 242 ordinary differences
remain unresolved. No new full-suite or canonical-CI success is claimed.

| Case | Components / maximum relative error | Old → new checksum blocks |
|---|---|---|
| `gen0032` | 3 / `4.4236e-16` | `[[92670.95430254005, 92715.26944807055, 5394495.4598471755]]` → `[[92693.03707327033, 92694.87458551113, 5394777.774092088]]` |
| `gen0162` | 3 / `1.0244e-15` | `[[46871.64465480175, 46912.45744508984, 641284.698235866]]` → `[[46871.953361038046, 46912.76615132614, 641305.966600447]]` |
| `gen0475` | 3 / `1.5724e-14` | `[[27151.82918504171, 131932.52549897382, -939979.6007762165]]` → `[[31185.4680385726, 127549.24613271712, -558222.3126147436]]` |
| `gen0572` | 6 / `1.7067e-15` | `[[167849.9025395879, 167890.1078119872, 21300050.663649388]]` → `[[167850.06785832535, 167890.11503477694, 21300062.927538052]]` |
| `gen0880` | 3 / `5.5494e-14` | `[[60920.154703662876, 61176.964056868645, 3906415.661581074]]` → `[[60920.704177028034, 61177.49230659628, 3906458.4145365255]]` |
| `gen0994` | 3 / `1.1467e-14` | `[[106650.05878460688, 106650.18920233288, 8439346.19902911]]` → `[[106650.05725603321, 106650.19177550825, 8439345.982613547]]` |
| `gen1224` | 3 / `1.8937e-13` | `[[30411.369709868013, 30459.526237990547, 1232554.694631206]]` → `[[30411.448242488477, 30459.51607033539, 1232556.181057504]]` |
| `gen1315` | 8 / `4.5609e-13` | `[[30383.545788392545, 30601.565436381683, 500105.67712378607]]` → `[[30810.583620881953, 31221.276639732067, 528537.8746195738]]` |
| `gen1409` | 3 / `6.742e-15` | `[[152531.7026919565, 152595.2574882943, 15973296.61425218]]` → `[[152487.8116847785, 152551.36648111625, 15964854.977971999]]` |
| `gen1736` | 5 / `5.803e-13` | `[[30381.85489376341, 30463.342937108937, 501217.8127281958]]` → `[[30381.84341680052, 30463.32683485667, 501216.735673139]]` |
| `gen1832` | 8 / `3.0573e-14` | `[[76195.08638962446, 76280.17415270921, 4698801.86238598]]` → `[[76194.26386539408, 76280.91280592125, 4698729.4083463205]]` |
| `gen1868` | 3 / `3.4819e-14` | `[[106585.78353762635, 106753.77622991134, 10570997.703791479]]` → `[[106603.2684371318, 106777.40382001479, 10572110.759543618]]` |
| `gen2179` | 3 / `4.8025e-13` | `[[106611.43744989557, 106748.63148533777, 10203459.959847251]]` → `[[106611.42625550646, 106748.64315685986, 10203459.145313958]]` |
| `gen2517` | 3 / `2.7329e-14` | `[[45834.828639702326, 45858.81352402091, 1450934.8174728234]]` → `[[45834.921610059566, 45858.92964139639, 1450936.507029497]]` |
| `gen2687` | 8 / `1.2649e-13` | `[[91548.27224064688, 91893.13238284142, 6649038.304278976]]` → `[[91548.21958135064, 91893.04473901891, 6649037.327577968]]` |
| `gen2688` | 3 / `2.255e-12` | `[[152371.15474998739, 152542.02290568707, 16971914.402893644]]` → `[[152371.10683083418, 152541.96646537865, 16971911.22996498]]` |
| `gen2732` | 6 / `2.4426e-15` | `[[107607.11219702837, 107831.01576927245, 8908709.776030885]]` → `[[107623.6670791933, 107824.74647024467, 8910818.62771597]]` |
| `gen2740` | 3 / `1.8201e-13` | `[[61009.98164865395, 61027.88924260481, 4365938.865820019]]` → `[[61009.990955444446, 61027.92015518564, 4365939.5726180915]]` |
| `gen2785` | 9 / `2.399e-14` | `[[91152.17943308967, 92306.83440740129, 7652415.540723781]]` → `[[91076.78844778116, 92375.2087779946, 7650622.669702106]]` |
| `gen2836` | 3 / `4.0678e-14` | `[[91224.74312733122, 91314.04492096876, 5636908.971653164]]` → `[[91224.72905059176, 91314.07339008275, 5636907.712885878]]` |

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko 700d25fcf0 goldens: prove eight regular nested offsets from their input normals
Continue #1914: gen0231, gen0693, gen1737, gen1831, gen1961, gen2461, gen2680, gen2938.

At every moved evaluation, independently differentiate the original input net and its first offset. Its tangent cross product is a positive multiple J of the base normal, so locally the second offset equals S+(d+e)n. Prove J and collinearity independently at 80/160 decimal digits; J ranges from 0.7951 to 2.5695. This is a local derivative statement, not a global fold or body-validity certificate. Reject negative or vanishing orientation, clamp/extension, mutation and named-slot aliases. All 36 moved components meet the unchanged 1e-9 relative rule (maximum 2.285e-11) with precision stability below 1e-50. Twenty-four numerical/scope controls pass.

Change only these eight complete collector-encoded rows. All 3182 cases, all 85 known failures, numerical source, tolerances and unrelated expectations stay unchanged. Total supported: 96 cases / 468 moved components. 262 ordinary differences remain unresolved.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko b06395dabd goldens: prove four zero-nested-offset cases from input nets
Continue #1914 with gen0302, gen0957, gen2311 and gen2766. One of each pair of nested offsets has exactly zero distance, so it is the identity without assuming orientation or a fold rule for two nonzero offsets. Independently evaluate all 17 moved components of the remaining offset from the original B-spline net at 80/160 decimal digits. Maximum relative error 1.012e-12; unchanged limit 1e-9. Twenty numerical/scope controls pass, including refusing two nonzero nested offsets and detecting a wrong returned value.

Only these four complete encoded rows change. All 3182 cases, all 85 known failures, source, tolerances, runners and unrelated expectations remain unchanged. Total supported: 88 cases / 432 moved components. 270 ordinary differences remain unresolved.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko e8b8bcaeb1 goldens: prove twenty-six non-aliasing offset requests from input geometry
Continue #1914: gen0080, gen0236, gen0252, gen0379, gen0420, gen0466, gen0700, gen0811, gen0835, gen1052, gen1129, gen1535, gen1676, gen1691, gen1743, gen1804, gen1905, gen2058, gen2101, gen2225, gen2242, gen2402, gen2586, gen2721, gen2888, gen2913.

Unequal upper-half request shape alone does not make a named slot wrong. For each successful request in these read-only scripts, verify that every serialized slot has its named partial as its final writer. Exclude actual aliases, then independently evaluate every moved component from the input net at 80/160 decimal digits. All 162 components satisfy the unchanged 1e-9 relative rule and precision stability test. Seventeen numerical/scope controls pass, including rejection of an aliasing grid, a wrong returned value and an undecoded changed component.

Only 26 complete encoded rows change, each equal to the preserved profile-matched collector. No numerical source, input, runner, tolerance, mask/refusal contract or known failure changes. All 3182 cases remain, including 85 known wrong cases; 274 ordinary differences stay unresolved. Total supported replacements: 84 cases / 415 moved components.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko d1311e88e9 goldens: verify thirteen pass-through offset cases from their input nets
Continue #1914 with 13 wrapped B-spline cases: gen0110, gen0756, gen0799, gen0824, gen1240, gen1275, gen1469, gen1748, gen1756, gen2231, gen2423, gen2662, gen2762.

CurveBoundedSurface forwards evaluation to its basis; StepSurface of a B-spline preserves the input parameters. Independent 80/160-digit input-control-net jets establish all 54 moved scalar components within the unchanged 1e-9 relative rule. Thirteen numerical and scope controls pass, including wrong-result, nested-offset and edited-script rejection; the whole-script named-slot alias audit finds no problems in these cases.

Replace only the 13 complete encoded rows, each identical to the preserved profile-matched current collector and CLI. Numerical source, all 3182 case identities, all 85 known-failure entries, and every unrelated golden stay unchanged. This makes 58 independently supported replacements (253 moved components); 300 other ordinary differences remain unresolved.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko 6621fa390e goldens: identify six more offset named-slot failures from input geometry
List gen0033, gen0351, gen0690, gen1110, gen1310 and gen1643 against #2717 and remove only their wrong expected lines. Each has a successful unequal upper-half request whose named D(2,0) slot is overwritten by D(1,1) or D(1,2).

Independent 80/160-digit input-control-net jets establish 21 wrong scalar components; nine oracle controls pass, including a correct-slot negative control and zero-offset/failed-step exclusions. The fresh profile-matched collector reproduces all 3182 inputs and raw outputs byte for byte. No new golden value is blessed.

All cases remain selected: 3097 golden rows and 85 known failures. The other 313 ordinary changed cases stay red. No numerical code, fixture, runner, tolerance, floor or previous failure entry changes.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko 04981337ff goldens: migrate independently checked offset derivatives and named alias defects
Keep the four numerical corrections and all original evidence unchanged. Update only the 45 input-oracle-supported expectations; list 79 exact-input/exact-bit named-slot defects against #2717 and remove their wrong golden lines. Every one of the 3182 cases remains selected.

Independent 80/160-digit Cox-de Boor/Taylor jets start from the input control nets, not kernel base partials; 199 moved components meet the unchanged 1e-9 relative rule. Five closed-form/degeneracy/knot controls pass. Case-specific old/new blocks and measured errors belong in the PR evidence. No tolerance, floor, fixture, runner or requested-grid fix changes.

Supported cases: api_offset_m12_state_evals, gen0000, gen0007, gen0068, gen0196, gen0203, gen0241, gen0255, gen0430, gen0453, gen0458, gen0506, gen0587, gen0659, gen0660, gen0716, gen0741, gen0745, gen0794, gen0951, gen0959, gen0974, gen0985, gen1080, gen1188, gen1312, gen1416, gen1423, gen1425, gen1540, gen1846, gen1977, gen1979, gen1998, gen2053, gen2324, gen2456, gen2559, gen2601, gen2689, gen2761, gen2839, gen2864, gen2882, third_derivative_outputs.

The pre-migration gate failed with 443 changes. Expected remaining ordinary changes: 319; these are not blessed or hidden. Keep draft; no full-suite, downstream or canonical-success claim.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko 90e1f5a9e9 evidence: measure the offset derivative goldens migration without blessing
3182 same-input unbroken cases at d9f774290 on 1483513:443 encoded changes,442 caused by the four terms plus inherited gen1558. Preserve raw old/new outputs/input hashes and distinguish raw component counts from the actual gate.405 of443 transfer historical input+bits evidence; no blanket correctness claim. Keep draft and every unexplained difference visible; no golden or known-failure change.

Temporary observer and all measurements archived/readback-verified (24 members) under pr1914-goldens-measurement-20261106T195012Z, then observer removed. Requested-grid fix belongs to standalone2970 after2765closed.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
Alex Lytvynenko dacbe5fe3e fix: retain the four unconditional offset third-derivative corrections
Flatten the archived PR #1914 net change before rebasing onto current goldens main. The original head, complete history and source/evidence are preserved by the verified archive. Keep all original evidence, not retired runtime classifications.

Co-Authored-By: OpenAI GPT-6.1 Sol <noreply@openai.com>
2026-11-08 16:35:31 -05:00
25 changed files with 17069 additions and 269 deletions
+90
View File
@@ -150,5 +150,95 @@
"primitive.primitive_creation_p2": {
"gen0092": "tangency-labs/solidcore#2794: a circle of radius 1e-3 swept along two 1e-2 legs at a right angle returns success, but the body fails check_brep level 2 (vertex 1.8284271e-3 off its faces); a refusal or the valid body of volume 6.2832e-8 is right; fix in #2840",
"gen0189": "tangency-labs/solidcore#2794: the same input as gen0092 (circle of radius 1e-3 swept along two 1e-2 legs at a right angle) returns success with an invalid body (vertex 1.8284271e-3 off its faces); fix in #2840"
},
"surface.offset_surface": {
"gen0033": "tangency-labs/solidcore#2717: step 3 names D(2,0), overwritten by D(1,1) at out[67]; input-only oracle confirms the named value is wrong",
"gen0086": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[30]",
"gen0111": "tangency-labs/solidcore#2717: step 2 names D(2,0), overwritten by D(1,2) at out[178]",
"gen0112": "tangency-labs/solidcore#2717: step 0 names D(2,0), overwritten by D(1,2) at out[14]",
"gen0124": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[18]",
"gen0166": "tangency-labs/solidcore#2717: step 2 names D(3,0), overwritten by D(1,2) at out[16]",
"gen0201": "tangency-labs/solidcore#2717: step 0 names D(2,0), overwritten by D(1,2) at out[14]",
"gen0256": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[65]",
"gen0351": "tangency-labs/solidcore#2717: step 3 names D(2,0), overwritten by D(1,1) at out[73]; input-only oracle confirms the named value is wrong",
"gen0411": "tangency-labs/solidcore#2717: step 3 names D(3,0), overwritten by D(1,2) at out[86]",
"gen0414": "tangency-labs/solidcore#2717: step 4 names D(2,0), overwritten by D(1,2) at out[133]",
"gen0460": "tangency-labs/solidcore#2717: step 2 names D(3,0), overwritten by D(1,2) at out[66]",
"gen0495": "tangency-labs/solidcore#2717: step 3 names D(3,0), overwritten by D(1,2) at out[127]",
"gen0500": "tangency-labs/solidcore#2717: step 1 names D(2,0), overwritten by D(1,2) at out[68]",
"gen0550": "tangency-labs/solidcore#2717: step 5 names D(2,0), overwritten by D(1,2) at out[96]",
"gen0551": "tangency-labs/solidcore#2717: step 0 names D(3,0), overwritten by D(1,2) at out[11]",
"gen0554": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[24]",
"gen0565": "tangency-labs/solidcore#2717: step 0 names D(2,0), overwritten by D(1,2) at out[14]",
"gen0615": "tangency-labs/solidcore#2717: step 2 names D(3,0), overwritten by D(1,2) at out[43]",
"gen0640": "tangency-labs/solidcore#2717: step 2 names D(2,0), overwritten by D(1,2) at out[123]",
"gen0641": "tangency-labs/solidcore#2717: step 2 names D(2,0), overwritten by D(1,2) at out[123]",
"gen0690": "tangency-labs/solidcore#2717: step 1 names D(2,0), overwritten by D(1,1) at out[62]; input-only oracle confirms the named value is wrong",
"gen0757": "tangency-labs/solidcore#2717: step 1 names D(2,0), overwritten by D(1,1) at out[63..65]; input-only oracle at the explicitly clamped point confirms all three named components are wrong",
"gen0761": "tangency-labs/solidcore#2717: step 2 names D(3,0), overwritten by D(1,2) at out[46]",
"gen0785": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[65]",
"gen0837": "tangency-labs/solidcore#2717: step 2 names D(3,0), overwritten by D(1,2) at out[25]",
"gen0863": "tangency-labs/solidcore#2717: step 0 names D(3,0), overwritten by D(1,2) at out[11]",
"gen0869": "tangency-labs/solidcore#2717: step 2 names D(3,0), overwritten by D(1,2) at out[25]",
"gen0896": "tangency-labs/solidcore#2717: step 0 names D(3,0), overwritten by D(1,2) at out[11]",
"gen0942": "tangency-labs/solidcore#2717: step 2 names D(2,0), overwritten by D(1,2) at out[75]",
"gen0978": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[65]",
"gen1010": "tangency-labs/solidcore#2717: step 3 names D(2,0), overwritten by D(1,2) at out[91]",
"gen1033": "tangency-labs/solidcore#2717: step 3 names D(2,0), overwritten by D(1,2) at out[77]",
"gen1058": "tangency-labs/solidcore#2717: step 4 names D(3,0), overwritten by D(1,2) at out[88]",
"gen1110": "tangency-labs/solidcore#2717: step 1 names D(2,0), overwritten by D(1,1) at out[9]; input-only oracle confirms the named value is wrong",
"gen1114": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[30]",
"gen1119": "tangency-labs/solidcore#2717: step 2 names D(3,0), overwritten by D(1,2) at out[78]",
"gen1121": "tangency-labs/solidcore#2717: step 2 names D(2,0), overwritten by D(1,2) at out[72]",
"gen1167": "tangency-labs/solidcore#2717: step 5 names D(3,0), overwritten by D(1,2) at out[110]",
"gen1174": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[65]",
"gen1265": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[65]",
"gen1274": "tangency-labs/solidcore#2717: step 0 names D(3,0), overwritten by D(1,2) at out[11]",
"gen1310": "tangency-labs/solidcore#2717: step 0 names D(2,0), overwritten by D(1,1) at out[8]; input-only oracle confirms the named value is wrong",
"gen1333": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[66]",
"gen1360": "tangency-labs/solidcore#2717: step 2 names D(2,0), overwritten by D(1,2) at out[28]",
"gen1363": "tangency-labs/solidcore#2717: step 3 names D(2,0), overwritten by D(1,2) at out[84]",
"gen1385": "tangency-labs/solidcore#2717: step 2 names D(2,0), overwritten by D(1,2) at out[178]",
"gen1397": "tangency-labs/solidcore#2717: step 4 names D(3,0), overwritten by D(1,2) at out[53]",
"gen1403": "tangency-labs/solidcore#2717: step 0 names D(2,0), overwritten by D(1,2) at out[14]",
"gen1410": "tangency-labs/solidcore#2717: step 2 names D(3,0), overwritten by D(1,2) at out[69]",
"gen1444": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[65]",
"gen1468": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[15]",
"gen1562": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[65]",
"gen1584": "tangency-labs/solidcore#2717: step 4 names D(2,0), overwritten by D(1,2) at out[30]",
"gen1603": "tangency-labs/solidcore#2717: step 2 names D(2,0), overwritten by D(1,2) at out[27..28]; input-only revolution oracle confirms both named components are wrong",
"gen1635": "tangency-labs/solidcore#2717: step 2 names D(2,0), overwritten by D(1,2) at out[87]",
"gen1643": "tangency-labs/solidcore#2717: step 1 names D(2,0), overwritten by D(1,2) at out[69]; input-only oracle confirms the named value is wrong",
"gen1694": "tangency-labs/solidcore#2717: step 2 names D(3,0), overwritten by D(1,2) at out[72]",
"gen1726": "tangency-labs/solidcore#2717: step 4 names D(2,0), overwritten by D(1,2) at out[92]",
"gen1733": "tangency-labs/solidcore#2717: step 0 names D(3,0), overwritten by D(1,2) at out[11]",
"gen1817": "tangency-labs/solidcore#2717: step 2 names D(3,0), overwritten by D(1,2) at out[28]",
"gen1818": "tangency-labs/solidcore#2717: step 5 names D(3,0), overwritten by D(1,2) at out[161]",
"gen1890": "tangency-labs/solidcore#2717: step 2 names D(2,0), overwritten by D(1,2) at out[22]",
"gen1955": "tangency-labs/solidcore#2717: step 0 names D(2,0), overwritten by D(1,2) at out[14]",
"gen2010": "tangency-labs/solidcore#2717: step 2 names D(3,0), overwritten by D(1,2) at out[16]",
"gen2015": "tangency-labs/solidcore#2717: step 3 names D(3,0), overwritten by D(1,2) at out[89]",
"gen2072": "tangency-labs/solidcore#2717: step 0 names D(2,0), overwritten by D(1,2) at out[14]",
"gen2140": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[65]",
"gen2168": "tangency-labs/solidcore#2717: step 3 names D(3,0), overwritten by D(1,2) at out[103]",
"gen2170": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[65]",
"gen2213": "tangency-labs/solidcore#2717: step 4 names D(3,0), overwritten by D(1,2) at out[87]",
"gen2240": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[66]",
"gen2243": "tangency-labs/solidcore#2717: step 2 names D(2,0), overwritten by D(1,1) at out[60..62]; input-only pre-swap oracle confirms all three named components are wrong",
"gen2257": "tangency-labs/solidcore#2717: step 3 names D(3,0), overwritten by D(1,2) at out[70]",
"gen2381": "tangency-labs/solidcore#2717: step 1 names D(2,0), overwritten by D(1,2) at out[68]",
"gen2485": "tangency-labs/solidcore#2717: step 2 names D(2,0), overwritten by D(1,2) at out[32]",
"gen2495": "tangency-labs/solidcore#2717: step 5 names D(3,0), overwritten by D(1,2) at out[108]",
"gen2543": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[65]",
"gen2598": "tangency-labs/solidcore#2717: step 2 names D(3,0), overwritten by D(1,2) at out[68]",
"gen2607": "tangency-labs/solidcore#2717: step 3 names D(2,0), overwritten by D(1,2) at out[26]",
"gen2685": "tangency-labs/solidcore#2717: step 2 names D(3,0), overwritten by D(1,2) at out[22]",
"gen2754": "tangency-labs/solidcore#2717: step 2 names D(2,0), overwritten by D(1,2) at out[33]",
"gen2756": "tangency-labs/solidcore#2717: step 1 names D(3,0), overwritten by D(1,2) at out[65]",
"gen2824": "tangency-labs/solidcore#2717: step 0 names D(3,0), overwritten by D(1,2) at out[11]",
"gen2945": "tangency-labs/solidcore#2717: step 0 names D(2,0), overwritten by D(1,2) at out[14]",
"gen2949": "tangency-labs/solidcore#2717: step 4 names D(2,0), overwritten by D(1,2) at out[92]",
"gen2966": "tangency-labs/solidcore#2717: step 0 names D(3,0), overwritten by D(1,2) at out[11]",
"upper_half_slot_overwrite": "tangency-labs/solidcore#2717: step 1 names D(2,0), overwritten by D(1,2) at out[26]"
}
}
File diff suppressed because it is too large Load Diff
+354 -12
View File
@@ -83,10 +83,13 @@
//! or past the end of the caller's array (undefined; [`SolidError::InvalidInput`]
//! here). Never-assigned locals that upstream reads in those cases (`Cv`, `Nv`, ...)
//! are [`Vec3::UNDEF`], as the default `SmVector3d`.
//! - **Upstream bugs kept** (`plan/upstream-issues.md`): the third derivatives `Cuuv` and
//! `Cuvv` of the normal's numerator use the coefficient `3.0` for `Buuv x Buv` and
//! `Buvv x Buv` (the derivative of `Cuu` / `Cvv` gives `1` and `-1`); the outputs
//! `Duvv` and `Dvvv` add `Buuv` instead of `Buvv` / `Bvvv`; `SplitAt` with an extended
//! - **Third-derivative corrections.** `Cuuv` and `Cuvv` use coefficients `1` and `-1`
//! for `Buuv x Buv` and `Buvv x Buv`, not upstream's `3.0`; `Duvv` and `Dvvv`
//! add `Buvv` and `Bvvv`, not `Buuv` (WR-160, WR-161; PR #1914). These corrections
//! are unconditional. The arithmetic for orders 0..2 and `Duuu` is unchanged;
//! regression tests retain pre-fix bits at four samples.
//! - **Other upstream bugs kept.** `WR-162` (the upper-half, unequal-order second-
//! derivative slot write) is still unfixed. `SplitAt` with an extended
//! surface splits the base surface a second time for the extended halves; `SwapUV`
//! with an extended surface negates the offset distance twice (kept unless
//! `fixes.offset_swap_uv_extended_distance`, WR-164); `STEPInversion`
@@ -1685,10 +1688,9 @@ impl OffsetSurface {
put(out, 3 * (hv + 1), d(3, 0)? + offset_distance * nuuu)?;
}
if cond_uuv {
// (upstream's 3.0 for Buuv x Buv; the derivative of Cuu gives 1)
let cuuv = d(3, 1)?.cross(bv)
+ d(3, 0)?.cross(d(0, 2)?)
+ (3.0 * d(2, 1)?).cross(d(1, 1)?)
+ d(2, 1)?.cross(d(1, 1)?)
+ (2.0 * d(2, 0)?).cross(d(1, 2)?)
+ bu.cross(d(2, 2)?);
let muuv =
@@ -1698,28 +1700,25 @@ impl OffsetSurface {
put(out, 2 * (hv + 1) + 1, d(2, 1)? + offset_distance * nuuv)?;
}
if cond_uvv {
// (upstream's 3.0 for Buvv x Buv, -1 by the derivative of Cvv; and Buuv in
// the output where Buvv belongs)
let cuvv = d(2, 2)?.cross(bv)
+ (2.0 * d(2, 1)?).cross(d(0, 2)?)
+ (3.0 * d(1, 2)?).cross(d(1, 1)?)
+ (-1.0 * d(1, 2)?).cross(d(1, 1)?)
+ d(2, 0)?.cross(d(0, 3)?)
+ bu.cross(d(1, 3)?);
let muvv =
(cvv.dot(cu) + 2.0 * cv.dot(cuv) + c.dot(cuvv) - mvv * mu - 2.0 * mv * muv) / m_len;
let nuvv =
(cuvv - mu * nvv - 2.0 * muv * nv - 2.0 * mv * nuv - mvv * nu - muvv * n) / m_len;
put(out, (hv + 1) + 2, d(2, 1)? + offset_distance * nuvv)?;
put(out, (hv + 1) + 2, d(1, 2)? + offset_distance * nuvv)?;
}
if hv >= 3 {
// (upstream adds Buuv where Bvvv belongs)
let cvvv = d(1, 3)?.cross(bv)
+ (3.0 * d(1, 2)?).cross(d(0, 2)?)
+ (3.0 * d(1, 1)?).cross(d(0, 3)?)
+ bu.cross(d(0, 4)?);
let mvvv = (3.0 * cv.dot(cvv) + c.dot(cvvv) - 3.0 * mv * mvv) / m_len;
let nvvv = (cvvv - 3.0 * mv * nvv - 3.0 * mvv * nv - mvvv * n) / m_len;
put(out, 3, d(2, 1)? + offset_distance * nvvv)?;
put(out, 3, d(0, 3)? + offset_distance * nvvv)?;
}
if !do_eval_simple {
@@ -3721,6 +3720,349 @@ mod tests {
assert!(fixed < 1e-9, "fixed copies disagree by {fixed}");
}
// ---- WR-160 / WR-161: corrected third-derivative terms --------------------------------
/// The biquadratic Bezier base `B(u, v) = (u + u^2 v, v + u v^2, u v)` over
/// `[0, 1]^2`. Its `Bu x Bv = (1 + uv) * q` with `q = (-v, -u, 1 + 3uv)`, so on the
/// positive domain the unit normal is `q / sqrt(L)` and both `Buuv x Buv` and
/// `Buvv x Buv` are non-zero (a torus alone cannot reach the `Cuvv` coefficient).
fn biquadratic_base() -> Surface {
use crate::nurbs::math::{CPoint, NOW};
let mut net = Vec::new();
for i in 0..3 {
let mut row = Vec::new();
for j in 0..3 {
let fi = f64::from(i) / 2.0;
let fj = f64::from(j) / 2.0;
let x = fi + if i == 2 { fj } else { 0.0 };
let y = fj + if j == 2 { fi } else { 0.0 };
row.push(CPoint::new(x, y, fi * fj, NOW));
}
net.push(row);
}
let knots = [0.0, 0.0, 0.0, 1.0, 1.0, 1.0];
Surface::from(BSplineSurface::from_data(2, 2, 2, 2, 5, 5, &net, &knots, &knots).unwrap())
}
/// The closed-form derivatives of `B + d * (q / sqrt(L))`, derived independently of
/// the kernel's cross-product/quotient recurrence.
#[derive(Clone, Copy)]
struct ClosedForm {
s: Vec3,
su: Vec3,
sv: Vec3,
suu: Vec3,
suv: Vec3,
svv: Vec3,
suuu: Vec3,
suuv: Vec3,
suvv: Vec3,
svvv: Vec3,
}
fn closed_form(u: f64, v: f64, d: f64) -> ClosedForm {
let q = Vec3::new(-v, -u, 1.0 + 3.0 * u * v);
let qu = Vec3::new(0.0, -1.0, 3.0 * v);
let qv = Vec3::new(-1.0, 0.0, 3.0 * u);
let quv = Vec3::new(0.0, 0.0, 3.0);
let l = 1.0 + u * u + v * v + 6.0 * u * v + 9.0 * u * u * v * v;
let lu = 2.0 * u + 6.0 * v + 18.0 * u * v * v;
let lv = 2.0 * v + 6.0 * u + 18.0 * u * u * v;
let luu = 2.0 + 18.0 * v * v;
let lvv = 2.0 + 18.0 * u * u;
let luv = 6.0 + 36.0 * u * v;
let luuv = 36.0 * v;
let luvv = 36.0 * u;
let w = l.powf(-0.5);
let a = -0.5 * l.powf(-1.5);
let b = 0.75 * l.powf(-2.5);
let c = -1.875 * l.powf(-3.5);
let w_u = a * lu;
let w_v = a * lv;
let w_uu = b * lu * lu + a * luu;
let w_uv = b * lu * lv + a * luv;
let w_vv = b * lv * lv + a * lvv;
let w_uuu = c * lu * lu * lu + 3.0 * b * lu * luu;
let w_uuv = c * lu * lu * lv + b * (2.0 * lu * luv + lv * luu) + a * luuv;
let w_uvv = c * lu * lv * lv + b * (lu * lvv + 2.0 * lv * luv) + a * luvv;
let w_vvv = c * lv * lv * lv + 3.0 * b * lv * lvv;
let n = q * w;
let n_u = qu * w + q * w_u;
let n_v = qv * w + q * w_v;
let n_uu = 2.0 * (qu * w_u) + q * w_uu;
let n_uv = quv * w + qu * w_v + qv * w_u + q * w_uv;
let n_vv = 2.0 * (qv * w_v) + q * w_vv;
let n_uuu = q * w_uuu + 3.0 * (qu * w_uu);
let n_uuv = q * w_uuv + 2.0 * (qu * w_uv) + qv * w_uu + 2.0 * (quv * w_u);
let n_uvv = q * w_uvv + qu * w_vv + 2.0 * (qv * w_uv) + 2.0 * (quv * w_v);
let n_vvv = q * w_vvv + 3.0 * (qv * w_vv);
let b0 = Vec3::new(u + u * u * v, v + u * v * v, u * v);
let bu = Vec3::new(1.0 + 2.0 * u * v, v * v, v);
let bv = Vec3::new(u * u, 1.0 + 2.0 * u * v, u);
let buu = Vec3::new(2.0 * v, 0.0, 0.0);
let buv = Vec3::new(2.0 * u, 2.0 * v, 1.0);
let buvv = Vec3::new(0.0, 2.0, 0.0);
let bvv = Vec3::new(0.0, 2.0 * u, 0.0);
let buuv = Vec3::new(2.0, 0.0, 0.0);
let buuu = Vec3::ZERO;
let bvvv = Vec3::ZERO;
ClosedForm {
s: b0 + d * n,
su: bu + d * n_u,
sv: bv + d * n_v,
suu: buu + d * n_uu,
suv: buv + d * n_uv,
svv: bvv + d * n_vv,
suuu: buuu + d * n_uuu,
suuv: buuv + d * n_uuv,
suvv: buvv + d * n_uvv,
svvv: bvvv + d * n_vvv,
}
}
fn assert_component_close(got: Vec3, want: Vec3, tol: f64, what: &str) {
for (axis, g, w) in [
("x", got.x, want.x),
("y", got.y, want.y),
("z", got.z, want.z),
] {
let scale = g.abs().max(w.abs());
assert!(
(g - w).abs() <= tol * scale,
"{what}.{axis}: got {g:?}, want {w:?}"
);
}
}
fn offset_evaluates(d: f64) -> (Kernel, OffsetSurface) {
let k = Kernel::default();
let off = OffsetSurface::new(&k, d, biquadratic_base(), true, SS_UNKNOWN).unwrap();
(k, off)
}
#[test]
fn biquadratic_base_matches_its_closed_form() {
let k = &Kernel::default();
let base = biquadratic_base();
for (u, v) in [(0.25, 0.5), (0.5, 0.25)] {
let m = base
.evaluate(k, Point2::new(u, v), 2, 2, flags(true, false))
.unwrap();
let cf = closed_form(u, v, 0.0);
assert_component_close(m[0][0], cf.s, 1e-12, "B");
assert_component_close(m[1][0], cf.su, 1e-12, "Bu");
assert_component_close(m[0][1], cf.sv, 1e-12, "Bv");
assert_component_close(m[2][0], cf.suu, 1e-12, "Buu");
assert_component_close(m[1][1], cf.suv, 1e-12, "Buv");
assert_component_close(m[0][2], cf.svv, 1e-12, "Bvv");
}
}
#[test]
fn offset_third_derivatives_match_closed_form_by_default() {
// The public bound permits total order 3: equal highest orders with
// `only_upper_half = true` fill the i + j <= 3 entries of the 4x4 matrix.
// A full rectangular (3, 3) request exceeds MAX_DERIVS and is not this test.
for d in [0.125, -0.125] {
for (u, v) in [(0.25, 0.5), (0.5, 0.25)] {
let (k, off) = offset_evaluates(d);
let m = off
.evaluate(&k, Point2::new(u, v), 3, 3, flags(true, true))
.unwrap();
let cf = closed_form(u, v, d);
assert_component_close(m[0][0], cf.s, 1e-10, "S");
assert_component_close(m[1][0], cf.su, 1e-10, "Su");
assert_component_close(m[0][1], cf.sv, 1e-10, "Sv");
assert_component_close(m[2][0], cf.suu, 1e-10, "Suu");
assert_component_close(m[1][1], cf.suv, 1e-10, "Suv");
assert_component_close(m[0][2], cf.svv, 1e-10, "Svv");
assert_component_close(m[3][0], cf.suuu, 1e-10, "Suuu");
assert_component_close(m[2][1], cf.suuv, 1e-10, "Suuv");
assert_component_close(m[1][2], cf.suvv, 1e-10, "Suvv");
assert_component_close(m[0][3], cf.svvv, 1e-10, "Svvv");
}
}
}
#[test]
fn offset_unchanged_partials_default_bits() {
// Sampled pre-fix bits, not a universal bit-identity proof.
let expected: [[[u64; 3]; 7]; 4] = [
[
[
4597784033420957231,
4603052133372172998,
4597843606503600894,
],
[
4608507369001728780,
4595937248662427790,
4602721857074240154,
],
[
4575355825046357480,
4608374220493674685,
4597551169972174395,
],
[
4606488318174322130,
4594149428474944805,
13811210086974777617,
],
[
4603548734204850756,
4607464454410458233,
4607524890612695553,
],
[
4590854552892320701,
4602398157112256935,
13790382657961158572,
],
[
4594342907449483204,
13824079142491288122,
4599049961336867727,
],
],
[
[
4603052133372172998,
4597784033420957231,
4597843606503600894,
],
[
4608374220493674685,
4575355825046357480,
4597551169972174395,
],
[
4595937248662427790,
4608507369001728780,
4602721857074240154,
],
[
4602398157112256935,
4590854552892320701,
13790382657961158572,
],
[
4607464454410458233,
4603548734204850756,
4607524890612695553,
],
[
4594149428474944805,
4606488318174322130,
13811210086974777617,
],
[
4578434541086050647,
13818365831681546033,
4589762622815018533,
],
],
[
[
4599496712514278632,
4603431404879963450,
4576459430447861784,
],
[
4608109268411991284,
4599294204986700729,
4602592743369460427,
],
[
4593127507237113762,
4608242416920045379,
4598487244331827426,
],
[
4607529469112865047,
13817521465329720613,
4587838050120001809,
],
[
4600938989108239225,
4606618347579135758,
4606497475174661117,
],
[
13814226589747096509,
4602819150202841901,
4567010621106382764,
],
[
13817714944304259012,
4600707105636512314,
13822421998191643535,
],
],
[
[
4603431404879963450,
4599496712514278632,
4576459430447861784,
],
[
4608242416920045379,
4593127507237113762,
4598487244331827426,
],
[
4599294204986700729,
4608109268411991284,
4602592743369460427,
],
[
4602819150202841901,
13814226589747096509,
4567010621106382764,
],
[
4606618347579135758,
4600938989108239224,
4606497475174661117,
],
[
13817521465329720613,
4607529469112865047,
4587838050120001809,
],
[
13801806577940826455,
4594993794826770225,
13813134659669794341,
],
],
];
let mut sample = 0;
for d in [0.125, -0.125] {
for (u, v) in [(0.25, 0.5), (0.5, 0.25)] {
let (k, off) = offset_evaluates(d);
let m = off
.evaluate(&k, Point2::new(u, v), 3, 3, flags(true, true))
.unwrap();
for (n, (i, j)) in [(0, 0), (1, 0), (0, 1), (2, 0), (1, 1), (0, 2), (3, 0)]
.into_iter()
.enumerate()
{
let p = m[i][j];
assert_eq!(
[p.x.to_bits(), p.y.to_bits(), p.z.to_bits()],
expected[sample][n],
"sample {sample}, D[{i}][{j}]"
);
}
sample += 1;
}
}
}
/// The B-spline base of the `extension_sequence` fixture (WR-164): degree 3 x 3,
/// a 5 x 5 net of non-rational (`NOW`) control points and knots
/// `[0,0,0,0,.5,1,1,1,1]`, built through the public `from_data`.
@@ -0,0 +1,128 @@
# Offset derivatives: input-only canonical revolution evidence (2026-11-08)
Continues #1914's golden dispositions, not #2717's implementation. The four
numerical corrections are unchanged. The thirteen replacements below have
independent value evidence; `gen1603` is instead a demonstrated wrong result,
recorded against #2717 and never blessed. The other ordinary differences and the
unresolved attribution review remain a draft hold.
## Provenance and independent construction
The complete 3,182-case collector was actually measured at
`7a90407a0fe189ebceb551e5df28aaf4e8cc9893`, with raw-stream SHA-256
`735d018cce5a61c0ffd3479cf6b2f780182779dcfba91d2f8bb89e20583bb958`.
The subsequent data-only commits through `2ef53c83e` leave numerical source
SHA-256 `86565c6a5d30bf5e8efb6e3dcbe8b34b4ecb4683d60982a4e214adb525889bef`
unchanged. Those measured revisions are not relabelled as newer executions.
The oracle reads only the original canonical B-spline generator, its weights and
knots, and the input axis and origin. It never reads a kernel-generated control
net or kernel derivatives. For unit axis z, origin o, and generator point p,
write c = o + ((p-o) dot z) z, r = p-c, t = z cross r. The exact full-turn
rational circle has Euclidean control points
`(1,0),(1,1),(0,1),(-1,1),(-1,0),(-1,-1),(0,-1),(1,-1),(1,0)`, alternating
weights 1 and `sqrt(1/2)`, degree 2 and doubled quarter knots. Its tensor-product
homogeneous control points are `(w(c+a r+b t),w)`, multiplying each circle weight
by its original generator weight. Linear affine rotation commutes with the
rational generator sum, proving that this net is the original generator revolved
in that parametrisation. Parameter swapping transposes it and reverses the
normal. This is the standard rational-quarter-circle identity, not a fitted net
(see `docs/definitions-and-certificates.md`, exact nets, and Piegl and Tiller,
*The NURBS Book*, rational circles and surfaces of revolution).
At separately constructed 80- and 160-digit nets, the independent Taylor algebra
differentiates `O = S + d (Su x Sv)/|Su x Sv|` through order three. Every input
binary64 is converted exactly. The retained old-term counterfactual selects the
moved indices only; it provides no expected value. All moved fields must be
decoded derivative components, with the correct final named-slot writer.
Only explicit scalar setters and nonassigning returned copies are modelled.
For `gen0078` and `gen2174`, extension is disabled throughout and the original
knots determine the API's clamped evaluation point before differentiation.
Every one of the 62 moved components passes the unchanged `1e-9` relative rule,
with maximum discrepancy `3.688949523297068e-12`. Maximum relative precision drift
is `2.0466689257358722e-76` within the jet calculation and
`2.1099858277606303e-76` across separately constructed nets. No absolute floor is
added. All thirteen retained input hashes and every raw float's binary64 bits
were checked before editing an expectation.
## Thirteen exact row replacements
Each new row is the original collector's complete encoding. The checksums below
are `[sum, abs_sum, weighted_sum]`, not bounds. The error column grades every raw
moved derivative component, not merely these checksums.
| Case | Components / max relative error | Old → new checksum blocks |
|---|---|---|
| `gen0078` | 9 / `1.56099e-14` | `[[60992.32232773774, 62007.82172754136, 3573365.621681268]]` → `[[60955.3429329313, 61630.4439708014, 3570310.42044418]]` |
| `gen0171` | 3 / `2.40474e-14` | `[[30460.067354949344, 30789.234141913264, 1571002.9046867639]]` → `[[30170.97766234359, 31175.217379802565, 1563841.1838079793]]` |
| `gen0510` | 2 / `3.49776e-15` | `[[136783.91504548964, 136940.61322075027, 12115341.037492398]]` → `[[136755.1149473944, 136912.07291654628, 12111572.593217228]]` |
| `gen0688` | 3 / `1.9788e-15` | `[[31346.461684132, 32403.592700681234, 1772295.8567843311]]` → `[[30781.309826793167, 32510.58038801976, 1753301.5773981945]]` |
| `gen0913` | 3 / `1.51772e-13` | `[[61750.73067260197, 61840.21030969888, 3698631.549175109]]` → `[[61633.6609800661, 61723.14061716303, 3688650.729457595]]` |
| `gen0965` | 6 / `3.92942e-16` | `[[31437.46049255547, 31844.361634149758, 3185201.893145722]]` → `[[31020.49497003035, 33310.32052049644, 3179826.550622901]]` |
| `gen1021` | 3 / `1.32677e-14` | `[[32022.521603079706, 32221.489579301622, 622051.0166188008]]` → `[[32040.91340095389, 32239.881377175807, 623490.583575049]]` |
| `gen1336` | 3 / `1.80575e-15` | `[[30508.18586005638, 30627.932843864983, 508130.084364765]]` → `[[30493.239429126246, 30634.94737160066, 507062.21452469326]]` |
| `gen1523` | 3 / `3.02139e-15` | `[[106762.79310347415, 107249.71947489904, 8025630.370844599]]` → `[[108515.03086142626, 109001.95723285116, 8245925.889540591]]` |
| `gen2083` | 3 / `9.18182e-14` | `[[76180.35956883941, 76708.58602231681, 3861956.0360428616]]` → `[[76207.07582306274, 76693.32645472689, 3865576.97943913]]` |
| `gen2174` | 9 / `3.68895e-12` | `[[30567.472013004335, 30885.59102480571, 513955.18919101433]]` → `[[30404.688016921584, 30612.68300826498, 501435.5076105441]]` |
| `gen2176` | 6 / `9.06304e-14` | `[[30807.70523767886, 31289.921984959317, 534969.6617323706]]` → `[[30716.53174207574, 31302.716083319912, 528245.5167390216]]` |
| `gen2792` | 9 / `5.18444e-15` | `[[61142.0736249404, 61506.22354610884, 3704443.051684439]]` → `[[60914.84419372687, 61285.2585890741, 3688211.2636018256]]` |
## One demonstrated wrong named result: gen1603
The unchanged first three script steps decode to exactly the first 35 raw
scalars. Step 2 evaluates `(hu,hv,upper)=(3,1,true)` at
`[0.0,0.5056932298525347]`. The input SHA-256 is
`731f3240c0a95f5d4885d50f3f19971f9c695729a9cc2d7bf85a268b03863cd7`
(sorted compact Python JSON UTF-8). The original input, exact prefix values/bits
and both independently constructed nets are retained in the archive below.
`plain_or_simple` writes `D(2,0)` at `2*(hv+1)=4`, then overwrites that slot at
`(hv+1)+2=4` in the `D(1,2)` branch. Its `cvv/nvv` dependencies were not assigned
because `hv<2`. The serializer still names the slot `D(2,0)`. Both the ordered
source writes and the independent named derivative establish the defect:
| Raw index | Named component | Observed | Independent expected | Observed binary64 bits |
|---|---|---|---|---|
| 27 | `D(2,0).y` | `-682.320875639607038465328514575958251953125` | `98.17705633871186130273814537770736337787356829969092636818019892066445767973323701654830201015106781171705963251994176157046773168970297790093474259243937981360` | `13872585010566877584` |
| 28 | `D(2,0).z` | `-274.23736224240929004736244678497314453125` | `-62.64369053230619373421032002083453895521648140114104432268252594384290426475072163262198550190050666582318223507349155873132572855942707179898455707666512398502` | `13866904087743285056` |
Relative discrepancies are `1.143886930392802` and `0.7715712767214668`, versus
the unchanged `1e-9` rule. Separate-net precision drift is below `3.169e-79`.
This proves a wrong returned named derivative; it does not grade the suffix or
claim that the overwriting expression is a correct `D(1,2)`. Its old golden has
length 46 and block `[[3650.1057913563527,6286.665825084098,118136.81376043486]]`.
That line is removed, not replaced by another wrong result. The complete case
still executes through its new issue-backed `known_failing.json` entry.
## Controls, exclusions and retained executable evidence
All 48 controls pass: the prior numerical/scope controls; cylinder point,
tangent and circle identities; normal orientation on parameter swap; translated,
non-Z and scaled axes; a rational generator's fractional-linear value and first
three derivatives; explicit clamp versus allowed extension; wrong-value rejection;
and the actual `gen1603` prefix's independently derived nets and input/bit identity.
Restoring the two named values to their independent answers eliminates those
wrong-value findings. Tampered bits and an unmodelled prefix edit are refused.
The exact-zero closed-form controls compare 95 digits of a 100-digit Decimal
calculation to accommodate its last rounding digits; captured values still use
strict relative `1e-9` with no added floor.
The nine independently disagreeing revolution cases remain unresolved:
`gen0729`, `gen0935`, `gen0993`, `gen1057`, `gen1488`, `gen2359`, `gen2588`,
`gen2653`, `gen2794`. Constructor frames, analytic/arc-length generators,
near-axis control points, unsupported edits/extensions, ambiguous knot sides
and actual aliases are outside the replacement oracle. No B-rep topology,
volume, global regularity or fold certificate is claimed for these jets.
The 35-member archive was read back and hash-verified before the edits, SHA-256
`9266f4152921f181300f3811f269622338fec6b672311413a86764fece3d7a0c`.
It contains executable Python models/tests, full-precision observations and
exclusions, original raw/counterfactual streams, both alias proof nets, the old/new
table and pre-edit identity receipt. Local retained path:
`~/.local/share/opencode/solidcore-cleanup-evidence/pr1914-canonical-revolution-20261108-2ef53c83e/`.
After these dispositions the expected accounting is 147 supported replacements /
721 moved components, 3,096 ordinary rows plus 86 known failures, all 3,182 cases
retained, and 210 ordinary differences. Those are projected counts until the
actual gate runs. Parent canonical run 42463902198 ended `action_required`, not
success. No workflow approval, rerun, review resolution or readiness is implied.
@@ -0,0 +1,37 @@
# Offset derivatives: preserved clamped-point evidence (2026-11-08)
The section below is preserved verbatim from #1914's published description at
`2ef53c83e1e4f0f37146f27e79f4a2cb5ff3b445`, to keep later descriptions below
GitHub's size limit. "This exact head", "only these eighteen rows" and the
85-failure count refer to that historical publication, not to a later commit.
Nothing is reblessed or remeasured by moving this evidence into a record.
## Eighteen additional clamped-point jets
With extension disabled throughout, `select_surface` clamps to the original direct-B-spline domain **before** `plain_or_simple` differentiates it. The returned jet is at that point, not a constant extension's derivatives. The input-only oracle computes those coordinates from the knots and evaluates at 80/160 digits, tracking scalar setters without changing inputs. Wrappers, extension-enabled scripts, other edits, unsupported orders, singular substitutions and actual named-slot aliases remain excluded.
All **102 moved components** satisfy the unchanged `1e-9` relative rule (maximum `4.3632e-13`) with maximum precision drift `3.453e-77`. All **37 numerical/scope controls** pass, and the existing kernel clamp/derivative-limit regression passes at this exact head. `gen1146`, `gen2298` and `gen2832` independently disagree and remain **unresolved**, with no automatic #2717 attribution, added floor or tolerance relaxation.
| Case | Components / maximum relative error | Old → new checksum blocks |
|---|---|---|
| `gen0096` | 3 / `5.2088e-14` | `[[-6773770209.875433, 64424015402.72274, -378749722047.2987]]` → `[[-6870563819.263274, 64495408259.89502, -386553674290.37585]]` |
| `gen0106` | 9 / `7.5415e-14` | `[[31626.719296583855, 33363.51465493481, 2099118.839468814]]` → `[[31510.658539520075, 33182.16476097925, 2093273.1365587397]]` |
| `gen0117` | 3 / `3.7514e-14` | `[[30393.92240119993, 30444.3317490507, 501900.592222631]]` → `[[30393.952077675916, 30444.158329310143, 501902.39235053613]]` |
| `gen0134` | 6 / `4.3632e-13` | `[[37.832510687021795, 104.14284964357064, 1054.742957704554]]` → `[[39.06487390981253, 102.07201454768582, 1103.5111544935114]]` |
| `gen0439` | 9 / `1.588e-14` | `[[-13493691.441181729, 13717537.718196781, -1869604804.9283178]]` → `[[-5556688.228706748, 5780534.505721803, -802954287.5887265]]` |
| `gen0470` | 6 / `3.6124e-14` | `[[30411.56311392412, 30538.255424358227, 2722225.4981703223]]` → `[[30411.02807801994, 30538.749829700955, 2722215.508914114]]` |
| `gen0520` | 6 / `2.0478e-14` | `[[2603.181323610652, 101149.6432820234, -150409.28755995663]]` → `[[4478.212077142718, 91793.59915509017, -110231.78941596425]]` |
| `gen0975` | 3 / `2.4293e-14` | `[[-0.07499960999706787, 0.28311173511413507, -1.263414230268762]]` → `[[0.0019536212055459258, 0.26423357801083436, -0.039611592564807424]]` |
| `gen1005` | 9 / `9.107e-14` | `[[28217.743974127192, 38093.608383810904, 1863000.1361175987]]` → `[[28256.151890684785, 38207.22373499281, 1865588.3408999464]]` |
| `gen1026` | 3 / `9.0952e-15` | `[[45771.34220991706, 45864.49375112448, 577600.5831079823]]` → `[[45772.14833280894, 45865.584040146976, 577658.7064678086]]` |
| `gen1047` | 3 / `8.4307e-14` | `[[31208.26635863553, 32223.47216717072, 562497.5647403828]]` → `[[31221.666358372844, 32308.728980748914, 563452.3343034461]]` |
| `gen1501` | 6 / `4.6519e-15` | `[[76938.6903388469, 77235.62454754181, 6127941.733940306]]` → `[[76034.63657112679, 77163.63088496617, 6061737.160377767]]` |
| `gen1815` | 3 / `7.9991e-14` | `[[30455.168428658406, 30493.41594569247, 1691412.366477158]]` → `[[30459.764928504002, 30490.46183200792, 1691573.0880891723]]` |
| `gen2309` | 3 / `2.8838e-13` | `[[-2130345613.6145353, 50165393450.44275, -376803058672.42773]]` → `[[-2129529154.1441603, 50151508983.73155, -376729189548.8684]]` |
| `gen2448` | 9 / `1.1976e-14` | `[[35233.48643230344, 35764.10016249043, 1427262.1225083272]]` → `[[19456.819917104032, 54845.74218580647, 1214690.186811323]]` |
| `gen2507` | 6 / `1.6393e-14` | `[[60864.74652840865, 60955.2526814626, 3623994.1771435984]]` → `[[60872.637104188514, 60959.125270976685, 3624559.095594456]]` |
| `gen2629` | 3 / `9.9247e-15` | `[[-0.7952289704799329, 21.961465706434275, -1.3129666919095415]]` → `[[-0.3803237369067746, 22.131710411144315, 10.81145447121247]]` |
| `gen2869` | 12 / `5.2903e-15` | `[[43578.856643134844, 50713.272901409575, 2669836.6176526896]]` → `[[45556.57516403698, 48850.43526261595, 2728328.359954016]]` |
The replacement rows equal the collector actually run at `7a90407a0fe189ebceb551e5df28aaf4e8cc9893`, raw SHA-256 `735d018cce5a61c0ffd3479cf6b2f780182779dcfba91d2f8bb89e20583bb958`; only these eighteen rows change. All **3,182 cases**, source inputs, unrelated expectations, topology/status fields and **85 known failures** are retained. Code, exact requested/clamped points, all full-precision observations (including disagreements), inputs, controls and actual checks are retained in the readback-verified 37-member archive SHA-256 `40de6d3665e90d04529ac1c6c36cc760ee9c4cccb093dc65aae69cd595f09bf7`. No new B-rep, global fold or volume result is accepted here.
@@ -0,0 +1,85 @@
# Offset derivatives: receiver copies and scalar setters (2026-11-08)
This preserves the twenty-case evidence published with #1914 at
`eafd9f983a896d404708f560250e61d98af1148d`, without changing its conclusions.
The table moves here only to keep the growing PR description within GitHub's
size limit. This is evidence, not a new implementation or a blanket blessing.
## Contract and independent calculation
`OffsetSurface::create_offset_surface` and `split_at` in
`crates/solidcore/src/surface/offset_surface.rs` take `&self` and return separate
surfaces. The golden runner in
`crates/goldens/src/units/surface_offset_surface.rs` serializes their results but
does not assign them to its evaluated receiver. `set_offset_distance` changes
only the scalar distance; `set_allow_extension` changes only that flag. The
independent script decodes the complete output, distinguishing returned copies
from those explicit scalar-state changes.
All 89 moved receiver-derivative components are computed from the original input
B-spline net and its active distance, not from kernel derivatives or the old
golden. The independent Taylor-series calculation forms
`O = S + d (Su x Sv) / |Su x Sv|` through order three at 80 and 160 decimal digits,
with exact conversion of input binary64 numbers. Every moved component satisfies
the unchanged `1e-9` relative rule; the maximum discrepancy is
`2.2550171238068774e-12`, and maximum relative precision drift is
`2.467611411137571e-76`. No absolute floor is used.
All 32 numerical/scope controls pass. They distinguish assignment from a returned
offset and two returned split copies; detect a wrong value, a changed returned
metadata field or leftover output; reject a real `(3,1)` named-slot collision;
and accept a fully decoded non-aliasing `(2,3)` request. An initial negative
control used a non-aliasing grid and failed closed on leftover data; correcting
its input did not relax the oracle. Actual aliases remain #2717's separate
implementation and refusal-versus-mask contract.
Other edits, clamping/extension, singular evaluations and unsupported orders are
not accepted by this particular oracle. Changed returned-copy metadata and
point-grid fields are not graded as derivatives and fail closed. No global
fold, B-rep validity or volume claim is made for these scalar observations.
## Exact twenty-row replacements
The numbers below are the golden encoding's `[sum, abs_sum, weighted_sum]`, not
an error bound. The error column grades every raw moved derivative component.
Each complete replacement equals the profile-matched collector actually run at
`7a90407a0fe189ebceb551e5df28aaf4e8cc9893`; raw stream SHA-256 is
`735d018cce5a61c0ffd3479cf6b2f780182779dcfba91d2f8bb89e20583bb958`.
All case inputs, other rows, topology/status fields and 85 known failures remain
unchanged. These twenty replacements were committed before this record.
| Case | Components / maximum relative error | Old → new checksum blocks |
|---|---|---|
| `gen0032` | 3 / `4.4236e-16` | `[[92670.95430254005, 92715.26944807055, 5394495.4598471755]]` → `[[92693.03707327033, 92694.87458551113, 5394777.774092088]]` |
| `gen0162` | 3 / `1.0244e-15` | `[[46871.64465480175, 46912.45744508984, 641284.698235866]]` → `[[46871.953361038046, 46912.76615132614, 641305.966600447]]` |
| `gen0475` | 3 / `1.5724e-14` | `[[27151.82918504171, 131932.52549897382, -939979.6007762165]]` → `[[31185.4680385726, 127549.24613271712, -558222.3126147436]]` |
| `gen0572` | 6 / `1.7067e-15` | `[[167849.9025395879, 167890.1078119872, 21300050.663649388]]` → `[[167850.06785832535, 167890.11503477694, 21300062.927538052]]` |
| `gen0880` | 3 / `5.5494e-14` | `[[60920.154703662876, 61176.964056868645, 3906415.661581074]]` → `[[60920.704177028034, 61177.49230659628, 3906458.4145365255]]` |
| `gen0994` | 3 / `1.1467e-14` | `[[106650.05878460688, 106650.18920233288, 8439346.19902911]]` → `[[106650.05725603321, 106650.19177550825, 8439345.982613547]]` |
| `gen1224` | 3 / `1.8937e-13` | `[[30411.369709868013, 30459.526237990547, 1232554.694631206]]` → `[[30411.448242488477, 30459.51607033539, 1232556.181057504]]` |
| `gen1315` | 8 / `4.5609e-13` | `[[30383.545788392545, 30601.565436381683, 500105.67712378607]]` → `[[30810.583620881953, 31221.276639732067, 528537.8746195738]]` |
| `gen1409` | 3 / `6.742e-15` | `[[152531.7026919565, 152595.2574882943, 15973296.61425218]]` → `[[152487.8116847785, 152551.36648111625, 15964854.977971999]]` |
| `gen1736` | 5 / `5.803e-13` | `[[30381.85489376341, 30463.342937108937, 501217.8127281958]]` → `[[30381.84341680052, 30463.32683485667, 501216.735673139]]` |
| `gen1832` | 8 / `3.0573e-14` | `[[76195.08638962446, 76280.17415270921, 4698801.86238598]]` → `[[76194.26386539408, 76280.91280592125, 4698729.4083463205]]` |
| `gen1868` | 3 / `3.4819e-14` | `[[106585.78353762635, 106753.77622991134, 10570997.703791479]]` → `[[106603.2684371318, 106777.40382001479, 10572110.759543618]]` |
| `gen2179` | 3 / `4.8025e-13` | `[[106611.43744989557, 106748.63148533777, 10203459.959847251]]` → `[[106611.42625550646, 106748.64315685986, 10203459.145313958]]` |
| `gen2517` | 3 / `2.7329e-14` | `[[45834.828639702326, 45858.81352402091, 1450934.8174728234]]` → `[[45834.921610059566, 45858.92964139639, 1450936.507029497]]` |
| `gen2687` | 8 / `1.2649e-13` | `[[91548.27224064688, 91893.13238284142, 6649038.304278976]]` → `[[91548.21958135064, 91893.04473901891, 6649037.327577968]]` |
| `gen2688` | 3 / `2.255e-12` | `[[152371.15474998739, 152542.02290568707, 16971914.402893644]]` → `[[152371.10683083418, 152541.96646537865, 16971911.22996498]]` |
| `gen2732` | 6 / `2.4426e-15` | `[[107607.11219702837, 107831.01576927245, 8908709.776030885]]` → `[[107623.6670791933, 107824.74647024467, 8910818.62771597]]` |
| `gen2740` | 3 / `1.8201e-13` | `[[61009.98164865395, 61027.88924260481, 4365938.865820019]]` → `[[61009.990955444446, 61027.92015518564, 4365939.5726180915]]` |
| `gen2785` | 9 / `2.399e-14` | `[[91152.17943308967, 92306.83440740129, 7652415.540723781]]` → `[[91076.78844778116, 92375.2087779946, 7650622.669702106]]` |
| `gen2836` | 3 / `4.0678e-14` | `[[91224.74312733122, 91314.04492096876, 5636908.971653164]]` → `[[91224.72905059176, 91314.07339008275, 5636907.712885878]]` |
## Retained executable evidence and limitations
The original thirty-member executable/raw-data/control/check archive was read
back and hash-verified, SHA-256
`96f1bf236a6bf5fe9096644c76151be41b9c31581f36199d04a2da64a5218864`.
The numerical source SHA-256 remains
`86565c6a5d30bf5e8efb6e3dcbe8b34b4ecb4683d60982a4e214adb525889bef`.
At the named publication head, fmt, workspace/all-target clippy, wasm32 and panic
inventory pass, while the gate is still
`FAIL surface.offset_surface cases=3182 changed=242 added=0 removed=0 broken=0 known_failing=85`.
Canonical run 42462015631 ended `action_required`, not success. None of this
certifies the unresolved cases or supersedes the draft's correctness/review hold.
@@ -0,0 +1,322 @@
# surface.offset_surface: nonregular path attribution (2026-11-04)
Updates: plan/findings/surface.offset_surface--default-third-derivatives-diagnostic-attribution--addendum-2026-11-04-per-case-four-term-attribution.md
This is a diagnostic addendum to the published draft at `7b24fece485b0e271b676518368acfa1b47af95f`; it does not authorize markers or readiness. All 17 selected cases exclude the 116 unequal-order aliases. Four-term changes are attributed as a bundle only.
The instrumented replay reports 17/17 full outputs unchanged, arithmetic unchanged, and trace SHA-256 `5ab8e2eb3e73b438ac782a91fd9d3f0d71d028fedb85f2ca85aa51fd8cc11bb7` (`nonregular-observed-replay.json`). Evidence SHA-256: `89bd583c15844a18951e76a49d6330987cf45c8cf4f5aa4eb0aad7146796c86c`.
All 84 reported components now have bit-exact runtime-method checks: 60 reproduce the observed child-slot extrapolation, and 24 reproduce the recurrence using observed post-fallback frames. The separate conditional child-jet check has 56 agreements, one disagreement and 27 ungraded components. None of these counts is a proof of a true geometric derivative; all 17 cases remain unlisted ordinary failures pending disposition.
Each pole row tests binary64 `2*child1-child2` at the actual returned matrix slot against both the actual root slot and serialized output. Child Decimal-80 jets are a separate, conditional check; neither extrapolation nor substitution proves a true geometric derivative. Non-pole recurrence is independently replayed in binary64 using observed post-fallback operands and original higher base derivatives; per-row status records bit agreement or the unresolved failure. Source: `offset_surface.rs:1548-1642,1645-1678,1693 onward`. A zero base normal need not have a unique limit: `(u,v²,0)` changes unit-normal sign across v=0. No geometry fix, tolerance, floor, or marker decision is made.
Commands (run in the temporary attribution directory): `python3 nonregular_probe.py`; `python3 -m unittest -v test_nonregular_probe.py`. Inputs and provenance are in the hash-verified per-case ledgers; JSON evidence includes full call details and oracle numbers.
## dome_pole_d0_2_p2
Input SHA-256: `a92830829932a6c79c9141e0f19e73e0690fe2342082c8e063a8035e892e531b`; source: `fixture:fixtures/surface.offset_surface/edge_cases.json#6 (upstream edge)`; group: `four-term-change-through-pole-extrapolation`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[62]` | -3292.428120705479 / `c0a9b8db32a3198c` | -3292.428120705479 / `c0a9b8db32a3198c` | 0.9423302172159822 / `3fee2791b31f3500` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[63]` | 3174.525988042753 / `40a8cd0d4e4e036c` | 3174.525988042753 / `40a8cd0d4e4e036c` | -9.096092721752903 / `c022313310b29fec` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[64]` | -1868.0322801122957 / `c09d30210e09aa7c` | -1868.0322801122957 / `c09d30210e09aa7c` | 0.2484197154758389 / `3fcfcc379cd33ec6` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[75]` | 9.024847492680486 / `40220cb8cf80e68c` | 9.024847492680486 / `40220cb8cf80e68c` | 6.358180826013821 / `40196ec6f457226f` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[84]` | 2.6666666666667154 / `40055555555555c3` | 2.6666666666667154 / `40055555555555c3` | 4.568763874910682e-14 / `3d29b8485bd20ac8` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[85]` | 6007.18666095821 / `40b7772fc90336f4` | 6007.18666095821 / `40b7772fc90336f4` | -10.432529744578458 / `c024dd7489e705ff` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[86]` | -2314.4792908398176 / `c0a214f5659be494` | -2314.4792908398176 / `c0a214f5659be494` | -0.31076165652264476 / `bfd3e384dbe76514` | observed-extrapolation-bit-match | conditional-method-agreement |
Call observations: `{"id":7,"parent":null,"depth":0,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.0,0.8],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":2e-11,"bu_length":1.1762925645989877,"bv_length":0.0},"initial_normal_length":null}`.
Call observations: `{"id":8,"parent":7,"depth":1,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.0005,0.8],"flags":[],"metrics":{"tol":1.9997777222222222e-11,"bu_length":1.175872416964433,"bv_length":0.0019224799400773995},"initial_normal_length":0.002260189053713566,"actual_frame":{"bu":[-0.7996,0.7386388403904396,-0.44466666666666643],"bv":[-0.0013330000000000006,-0.001385294235893588,1.0587911840678754e-22],"normal_numerator":[-0.0006159941702273485,0.0005927406666666667,0.0020922868452609693],"last_length":0.002260189053713566},"frame_consistency":{"original_bu_cross_bv":[-0.0006159941702273485,0.0005927406666666667,0.0020922868452609693],"actual_bu_cross_bv":[-0.0006159941702273485,0.0005927406666666667,0.0020922868452609693],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":9,"parent":7,"depth":1,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.001,0.8],"flags":[],"metrics":{"tol":1.999555333333333e-11,"bu_length":1.1754524134378175,"bv_length":0.0038439983998146752},"initial_normal_length":0.004517633754625092,"actual_frame":{"bu":[-0.7991999999999998,0.738269336218158,-0.4448888888888892],"bv":[-0.002665333333333334,-0.0027698956514641488,-1.73429995950318e-18],"normal_numerator":[-0.0012322957987180524,0.001185777185185185,0.004181434475450278],"last_length":0.004517633754625092},"frame_consistency":{"original_bu_cross_bv":[-0.0012322957987180524,0.001185777185185185,0.004181434475450278],"actual_bu_cross_bv":[-0.0012322957987180524,0.001185777185185185,0.004181434475450278],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":10,"parent":null,"depth":0,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.0,0.5],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":2e-11,"bu_length":1.2372809695177827,"bv_length":0.0},"initial_normal_length":null}`.
Call observations: `{"id":11,"parent":10,"depth":1,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.0005,0.5],"flags":[],"metrics":{"tol":1.999777722222222e-11,"bu_length":1.2368220477408132,"bv_length":0.0013329999999999998},"initial_normal_length":0.0016486837896385036,"actual_frame":{"bu":[2.222614453595284e-16,1.154123188110062,-0.444666666666667],"bv":[-0.0013329999999999998,0.0,0.0],"normal_numerator":[0.0,0.000592740666666667,0.0015384462097507124],"last_length":0.0016486837896385036},"frame_consistency":{"original_bu_cross_bv":[0.0,0.000592740666666667,0.0015384462097507124],"actual_bu_cross_bv":[0.0,0.000592740666666667,0.0015384462097507124],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":12,"parent":10,"depth":1,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.001,0.5],"flags":[],"metrics":{"tol":1.999555333333333e-11,"bu_length":1.2363632651679644,"bv_length":0.0026653333333333325},"initial_normal_length":0.003295320222761013,"actual_frame":{"bu":[2.224782857940255e-16,1.153545837840872,-0.44488888888888944],"bv":[-0.0026653333333333325,0.0,0.0],"normal_numerator":[0.0,0.0011857771851851863,0.0030745841731252034],"last_length":0.003295320222761013},"frame_consistency":{"original_bu_cross_bv":[0.0,0.0011857771851851863,0.0030745841731252034],"actual_bu_cross_bv":[0.0,0.0011857771851851863,0.0030745841731252034],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## dome_pole_d0_2_p3
Input SHA-256: `893bcd685c390d3d23ed56690b3834dc389c18082953bb22f9d44b6be65d7939`; source: `fixture:fixtures/surface.offset_surface/edge_cases.json#7 (upstream edge)`; group: `four-term-change-through-pole-extrapolation`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[62]` | -3651.65964179391 / `c0ac8751bc91b7d6` | -3651.65964179391 / `c0ac8751bc91b7d6` | 3.3563413351912104 / `400ad9c97c66dfb0` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[63]` | 4639.5152384292005 / `40b21f83e6aa6b0f` | 4639.5152384292005 / `40b21f83e6aa6b0f` | -5.888422781825484 / `c0178dbeb3a3d8e1` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[64]` | -2709.427975805981 / `c0a52adb1fa51456` | -2709.427975805981 / `c0a52adb1fa51456` | 0.2637632431213672 / `3fd0e17f39c5f67b` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[76]` | 2.715885880266168e-12 / `3d87e3a19e22249b` | 2.715885880266168e-12 / `3d87e3a19e22249b` | 2.7159626444355055e-12 / `3d87e3cdde867746` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[77]` | -3.956512150208427e-13 / `bd5bd76b2d2e2627` | -3.956512150208427e-13 / `bd5bd76b2d2e2627` | -3.9387485818144244e-13 / `bd5bb76b2d2e2627` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[84]` | -5.621828096662979e-10 / `be03510325646ce2` | -5.621828096662979e-10 / `be03510325646ce2` | -5.624672350298552e-10 / `be0353839d738ad0` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[85]` | 6940.523659707582 / `40bb1c860e90064c` | 6940.523659707582 / `40bb1c860e90064c` | -7.026930620595269 / `c01c1b93b35adee3` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[86]` | -3567.022143757666 / `c0abde0b566d35f9` | -3567.022143757666 / `c0abde0b566d35f9` | 0.5438906566995296 / `3fe1678d60e3fb70` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[91]` | -1.7881074828960514e-14 / `bd1421de71ccc434` | -1.7881074828960514e-14 / `bd1421de71ccc434` | -6.913381204659278e-14 / `bd33759dbcd782ca` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[92]` | -1.6477782368032925e-14 / `bd128d65bcaad2a0` | -1.6477782368032925e-14 / `bd128d65bcaad2a0` | 9.860205767612441e-15 / `3d06340589d97028` | observed-extrapolation-bit-match | conditional-method-agreement |
Call observations: `{"id":7,"parent":null,"depth":0,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.0,0.8],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":2e-11,"bu_length":0.838936893402067,"bv_length":0.0},"initial_normal_length":null}`.
Call observations: `{"id":8,"parent":7,"depth":1,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.0005,0.8],"flags":[],"metrics":{"tol":1.999833166666667e-11,"bu_length":0.8392020019041898,"bv_length":0.0012600000000000003},"initial_normal_length":0.0010085951742894671,"actual_frame":{"bu":[-0.6479999999999999,0.4156921938165306,-0.33399999999999996],"bv":[-0.0009900000000000002,-0.000779422863405995,-4.33574989875795e-19],"normal_numerator":[-0.00026032723637760247,0.00033065999999999976,0.0009166012873654501],"last_length":0.0010085951742894671},"frame_consistency":{"original_bu_cross_bv":[-0.00026032723637760247,0.00033065999999999976,0.0009166012873654501],"actual_bu_cross_bv":[-0.00026032723637760247,0.00033065999999999976,0.0009166012873654501],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":9,"parent":7,"depth":1,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.001,0.8],"flags":[],"metrics":{"tol":1.999666e-11,"bu_length":0.839467556119817,"bv_length":0.0025200000000000005},"initial_normal_length":0.0020178919122688425,"actual_frame":{"bu":[-0.648,0.41569219381653055,-0.33466666666666717],"bv":[-0.001980000000000001,-0.0015588457268119896,0.0],"normal_numerator":[-0.0005216937032397466,0.0006626400000000012,0.0018332025747309004],"last_length":0.0020178919122688425},"frame_consistency":{"original_bu_cross_bv":[-0.0005216937032397466,0.0006626400000000012,0.0018332025747309004],"actual_bu_cross_bv":[-0.0005216937032397466,0.0006626400000000012,0.0018332025747309004],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":10,"parent":null,"depth":0,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.0,0.5],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":2e-11,"bu_length":0.7300589778306347,"bv_length":0.0},"initial_normal_length":null}`.
Call observations: `{"id":11,"parent":10,"depth":1,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.0005,0.5],"flags":[],"metrics":{"tol":1.999833166666667e-11,"bu_length":0.7303636080747727,"bv_length":0.0011250000000000001},"initial_normal_length":0.0008216590590841194,"actual_frame":{"bu":[1.1123922230635156e-16,0.6495190528383289,-0.3340000000000005],"bv":[-0.0011250000000000001,4.594451783440283e-20,0.0],"normal_numerator":[1.534546895669057e-20,0.00037575000000000065,0.00073070893444312],"last_length":0.0008216590590841194},"frame_consistency":{"original_bu_cross_bv":[1.534546895669057e-20,0.00037575000000000065,0.00073070893444312],"actual_bu_cross_bv":[1.534546895669057e-20,0.00037575000000000065,0.00073070893444312],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":12,"parent":10,"depth":1,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.001,0.5],"flags":[],"metrics":{"tol":1.999666e-11,"bu_length":0.7306687195834908,"bv_length":0.0022499999999999994},"initial_normal_length":0.0016440046190628538,"actual_frame":{"bu":[1.1167314140336218e-16,0.6495190528383289,-0.334666666666667],"bv":[-0.0022499999999999994,9.187504248477472e-20,0.0],"normal_numerator":[3.074751421823797e-20,0.0007530000000000005,0.0014614178688862397],"last_length":0.0016440046190628538},"frame_consistency":{"original_bu_cross_bv":[3.074751421823797e-20,0.0007530000000000005,0.0014614178688862397],"actual_bu_cross_bv":[3.074751421823797e-20,0.0007530000000000005,0.0014614178688862397],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## dome_pole_dm0_2_p2
Input SHA-256: `524ac5837cab7d2d6deb2802b8edc35954e5e03171bf66869aac6b18c7afa991`; source: `fixture:fixtures/surface.offset_surface/edge_cases.json#8 (upstream edge)`; group: `four-term-change-through-pole-extrapolation`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[62]` | 3297.7614540388113 / `40a9c385dd4dc434` | 3297.7614540388113 / `40a9c385dd4dc434` | -0.9423302172159893 / `bfee2791b31f3540` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[63]` | -3168.9834254585317 / `c0a8c1f7838aace5` | -3168.9834254585317 / `c0a8c1f7838aace5` | -9.37911589231512 / `c022c21b7a6dc64c` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[64]` | 1868.0322801122957 / `409d30210e09aa7c` | 1868.0322801122957 / `409d30210e09aa7c` | -0.24841971547587444 / `bfcfcc379cd343c6` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[75]` | -3.6915141593471548 / `c00d88389358ef8a` | -3.6915141593471548 / `c00d88389358ef8a` | -6.358180826013821 / `c0196ec6f457226f` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[84]` | 2.666666666666617 / `40055555555554e5` | 2.666666666666617 / `40055555555554e5` | -5.2793066106707825e-14 / `bd2db8485bd20ac8` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[85]` | -6007.18666095821 / `c0b7772fc90336f4` | -6007.18666095821 / `c0b7772fc90336f4` | -8.042678869489565 / `c02015da01396039` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[86]` | 2314.4792908398176 / `40a214f5659be494` | 2314.4792908398176 / `40a214f5659be494` | 0.31076165652260923 / `3fd3e384dbe76294` | observed-extrapolation-bit-match | conditional-method-agreement |
Call observations: `{"id":7,"parent":null,"depth":0,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.0,0.8],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":2e-11,"bu_length":1.1762925645989877,"bv_length":0.0},"initial_normal_length":null}`.
Call observations: `{"id":8,"parent":7,"depth":1,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.0005,0.8],"flags":[],"metrics":{"tol":1.9997777222222222e-11,"bu_length":1.175872416964433,"bv_length":0.0019224799400773995},"initial_normal_length":0.002260189053713566,"actual_frame":{"bu":[-0.7996,0.7386388403904396,-0.44466666666666643],"bv":[-0.0013330000000000006,-0.001385294235893588,1.0587911840678754e-22],"normal_numerator":[-0.0006159941702273485,0.0005927406666666667,0.0020922868452609693],"last_length":0.002260189053713566},"frame_consistency":{"original_bu_cross_bv":[-0.0006159941702273485,0.0005927406666666667,0.0020922868452609693],"actual_bu_cross_bv":[-0.0006159941702273485,0.0005927406666666667,0.0020922868452609693],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":9,"parent":7,"depth":1,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.001,0.8],"flags":[],"metrics":{"tol":1.999555333333333e-11,"bu_length":1.1754524134378175,"bv_length":0.0038439983998146752},"initial_normal_length":0.004517633754625092,"actual_frame":{"bu":[-0.7991999999999998,0.738269336218158,-0.4448888888888892],"bv":[-0.002665333333333334,-0.0027698956514641488,-1.73429995950318e-18],"normal_numerator":[-0.0012322957987180524,0.001185777185185185,0.004181434475450278],"last_length":0.004517633754625092},"frame_consistency":{"original_bu_cross_bv":[-0.0012322957987180524,0.001185777185185185,0.004181434475450278],"actual_bu_cross_bv":[-0.0012322957987180524,0.001185777185185185,0.004181434475450278],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":10,"parent":null,"depth":0,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.0,0.5],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":2e-11,"bu_length":1.2372809695177827,"bv_length":0.0},"initial_normal_length":null}`.
Call observations: `{"id":11,"parent":10,"depth":1,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.0005,0.5],"flags":[],"metrics":{"tol":1.999777722222222e-11,"bu_length":1.2368220477408132,"bv_length":0.0013329999999999998},"initial_normal_length":0.0016486837896385036,"actual_frame":{"bu":[2.222614453595284e-16,1.154123188110062,-0.444666666666667],"bv":[-0.0013329999999999998,0.0,0.0],"normal_numerator":[0.0,0.000592740666666667,0.0015384462097507124],"last_length":0.0016486837896385036},"frame_consistency":{"original_bu_cross_bv":[0.0,0.000592740666666667,0.0015384462097507124],"actual_bu_cross_bv":[0.0,0.000592740666666667,0.0015384462097507124],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":12,"parent":10,"depth":1,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.001,0.5],"flags":[],"metrics":{"tol":1.999555333333333e-11,"bu_length":1.2363632651679644,"bv_length":0.0026653333333333325},"initial_normal_length":0.003295320222761013,"actual_frame":{"bu":[2.224782857940255e-16,1.153545837840872,-0.44488888888888944],"bv":[-0.0026653333333333325,0.0,0.0],"normal_numerator":[0.0,0.0011857771851851863,0.0030745841731252034],"last_length":0.003295320222761013},"frame_consistency":{"original_bu_cross_bv":[0.0,0.0011857771851851863,0.0030745841731252034],"actual_bu_cross_bv":[0.0,0.0011857771851851863,0.0030745841731252034],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## dome_pole_dm0_2_p3
Input SHA-256: `bc4165fa8cf8628dbf3d5baad072c67ab78ceb0348c81ebc54d51c6732fe5eda`; source: `fixture:fixtures/surface.offset_surface/edge_cases.json#9 (upstream edge)`; group: `four-term-change-through-pole-extrapolation`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[62]` | 3651.65964179391 / `40ac8751bc91b7d6` | 3651.65964179391 / `40ac8751bc91b7d6` | 0.24365866480878395 / `3fcf3035065ed100` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[63]` | -4639.5152384292005 / `c0b21f83e6aa6b0f` | -4639.5152384292005 / `c0b21f83e6aa6b0f` | -4.503882063587782 / `c01203f9a8e09a21` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[64]` | 2709.427975805981 / `40a52adb1fa51456` | 2709.427975805981 / `40a52adb1fa51456` | -0.2637632431213672 / `bfd0e17f39c5f67b` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[76]` | -2.716039403293792e-12 / `bd87e3fa1e22249b` | -2.716039403293792e-12 / `bd87e3fa1e22249b` | -2.715962639124454e-12 / `bd87e3cdddbdd1ef` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[77]` | 3.956512150208427e-13 / `3d5bd76b2d2e2627` | 3.956512150208427e-13 / `3d5bd76b2d2e2627` | 3.9742757186024294e-13 / `3d5bf76b2d2e2627` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[84]` | 5.621828096662979e-10 / `3e03510325646ce2` | 5.621828096662979e-10 / `3e03510325646ce2` | 5.624654586747099e-10 / `3e03537f9d73cad0` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[85]` | -6940.523659707582 / `c0bb1c860e90064c` | -6940.523659707582 / `c0bb1c860e90064c` | -3.3653742248179936 / `c00aec4952532836` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[86]` | 3567.022143757666 / `40abde0b566d35f9` | 3567.022143757666 / `40abde0b566d35f9` | -0.5438906566995296 / `bfe1678d60e3fb70` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[91]` | 1.7727551801336567e-14 / `3d13f59e71ccc434` | 1.7727551801336567e-14 / `3d13f59e71ccc434` | 6.89802890189688e-14 / `3d336a8dbcd782c8` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[92]` | 1.6477782368032925e-14 / `3d128d65bcaad2a0` | 1.6477782368032925e-14 / `3d128d65bcaad2a0` | -9.860205767612441e-15 / `bd06340589d97028` | observed-extrapolation-bit-match | conditional-method-agreement |
Call observations: `{"id":7,"parent":null,"depth":0,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.0,0.8],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":2e-11,"bu_length":0.838936893402067,"bv_length":0.0},"initial_normal_length":null}`.
Call observations: `{"id":8,"parent":7,"depth":1,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.0005,0.8],"flags":[],"metrics":{"tol":1.999833166666667e-11,"bu_length":0.8392020019041898,"bv_length":0.0012600000000000003},"initial_normal_length":0.0010085951742894671,"actual_frame":{"bu":[-0.6479999999999999,0.4156921938165306,-0.33399999999999996],"bv":[-0.0009900000000000002,-0.000779422863405995,-4.33574989875795e-19],"normal_numerator":[-0.00026032723637760247,0.00033065999999999976,0.0009166012873654501],"last_length":0.0010085951742894671},"frame_consistency":{"original_bu_cross_bv":[-0.00026032723637760247,0.00033065999999999976,0.0009166012873654501],"actual_bu_cross_bv":[-0.00026032723637760247,0.00033065999999999976,0.0009166012873654501],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":9,"parent":7,"depth":1,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.001,0.8],"flags":[],"metrics":{"tol":1.999666e-11,"bu_length":0.839467556119817,"bv_length":0.0025200000000000005},"initial_normal_length":0.0020178919122688425,"actual_frame":{"bu":[-0.648,0.41569219381653055,-0.33466666666666717],"bv":[-0.001980000000000001,-0.0015588457268119896,0.0],"normal_numerator":[-0.0005216937032397466,0.0006626400000000012,0.0018332025747309004],"last_length":0.0020178919122688425},"frame_consistency":{"original_bu_cross_bv":[-0.0005216937032397466,0.0006626400000000012,0.0018332025747309004],"actual_bu_cross_bv":[-0.0005216937032397466,0.0006626400000000012,0.0018332025747309004],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":10,"parent":null,"depth":0,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.0,0.5],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":2e-11,"bu_length":0.7300589778306347,"bv_length":0.0},"initial_normal_length":null}`.
Call observations: `{"id":11,"parent":10,"depth":1,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.0005,0.5],"flags":[],"metrics":{"tol":1.999833166666667e-11,"bu_length":0.7303636080747727,"bv_length":0.0011250000000000001},"initial_normal_length":0.0008216590590841194,"actual_frame":{"bu":[1.1123922230635156e-16,0.6495190528383289,-0.3340000000000005],"bv":[-0.0011250000000000001,4.594451783440283e-20,0.0],"normal_numerator":[1.534546895669057e-20,0.00037575000000000065,0.00073070893444312],"last_length":0.0008216590590841194},"frame_consistency":{"original_bu_cross_bv":[1.534546895669057e-20,0.00037575000000000065,0.00073070893444312],"actual_bu_cross_bv":[1.534546895669057e-20,0.00037575000000000065,0.00073070893444312],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":12,"parent":10,"depth":1,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.001,0.5],"flags":[],"metrics":{"tol":1.999666e-11,"bu_length":0.7306687195834908,"bv_length":0.0022499999999999994},"initial_normal_length":0.0016440046190628538,"actual_frame":{"bu":[1.1167314140336218e-16,0.6495190528383289,-0.334666666666667],"bv":[-0.0022499999999999994,9.187504248477472e-20,0.0],"normal_numerator":[3.074751421823797e-20,0.0007530000000000005,0.0014614178688862397],"last_length":0.0016440046190628538},"frame_consistency":{"original_bu_cross_bv":[3.074751421823797e-20,0.0007530000000000005,0.0014614178688862397],"actual_bu_cross_bv":[3.074751421823797e-20,0.0007530000000000005,0.0014614178688862397],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## dome_pole_d2_0_p2
Input SHA-256: `490f0758c4baec568c4e6fe7178f630b33259149cf944d06e51dfe1eb2da2b03`; source: `fixture:fixtures/surface.offset_surface/edge_cases.json#10 (upstream edge)`; group: `four-term-change-through-pole-extrapolation`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[62]` | -32948.28120705478 / `c0e01688ffa5eff6` | -32948.28120705478 / `c0e01688ffa5eff6` | 9.423302172159854 / `4022d8bb0ff38132` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[63]` | 31720.31834879853 / `40defa145fd3a39a` | 31720.31834879853 / `40defa145fd3a39a` | -7.822488454222917 / `c01f4a3a69d0e66c` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[64]` | -18680.322801122955 / `c0d23e14a8c60a8d` | -18680.322801122955 / `c0d23e14a8c60a8d` | 2.4841971547585486 / `4003dfa2c20408a3` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[75]` | 66.24847492680486 / `40508fe70361202f` | 66.24847492680486 / `40508fe70361202f` | 63.5818082601382 / `404fca78b16ceb0a` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[84]` | 2.6666666666671586 / `40055555555559a9` | 2.6666666666671586 / `40055555555559a9` | 4.888508106002727e-13 / `3d61332d396346bd` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[85]` | 60071.8666095821 / `40ed54fbbb4404b1` | 60071.8666095821 / `40ed54fbbb4404b1` | -21.186858682478487 / `c0352fd5f87a3800` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[86]` | -23144.792908398173 / `c0d69a32bf02ddb8` | -23144.792908398173 / `c0d69a32bf02ddb8` | -3.1076165652262877 / `c008dc6612e13cf1` | observed-extrapolation-bit-match | conditional-method-agreement |
Call observations: `{"id":7,"parent":null,"depth":0,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.0,0.8],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":2e-11,"bu_length":1.1762925645989877,"bv_length":0.0},"initial_normal_length":null}`.
Call observations: `{"id":8,"parent":7,"depth":1,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.0005,0.8],"flags":[],"metrics":{"tol":1.9997777222222222e-11,"bu_length":1.175872416964433,"bv_length":0.0019224799400773995},"initial_normal_length":0.002260189053713566,"actual_frame":{"bu":[-0.7996,0.7386388403904396,-0.44466666666666643],"bv":[-0.0013330000000000006,-0.001385294235893588,1.0587911840678754e-22],"normal_numerator":[-0.0006159941702273485,0.0005927406666666667,0.0020922868452609693],"last_length":0.002260189053713566},"frame_consistency":{"original_bu_cross_bv":[-0.0006159941702273485,0.0005927406666666667,0.0020922868452609693],"actual_bu_cross_bv":[-0.0006159941702273485,0.0005927406666666667,0.0020922868452609693],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":9,"parent":7,"depth":1,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.001,0.8],"flags":[],"metrics":{"tol":1.999555333333333e-11,"bu_length":1.1754524134378175,"bv_length":0.0038439983998146752},"initial_normal_length":0.004517633754625092,"actual_frame":{"bu":[-0.7991999999999998,0.738269336218158,-0.4448888888888892],"bv":[-0.002665333333333334,-0.0027698956514641488,-1.73429995950318e-18],"normal_numerator":[-0.0012322957987180524,0.001185777185185185,0.004181434475450278],"last_length":0.004517633754625092},"frame_consistency":{"original_bu_cross_bv":[-0.0012322957987180524,0.001185777185185185,0.004181434475450278],"actual_bu_cross_bv":[-0.0012322957987180524,0.001185777185185185,0.004181434475450278],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":10,"parent":null,"depth":0,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.0,0.5],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":2e-11,"bu_length":1.2372809695177827,"bv_length":0.0},"initial_normal_length":null}`.
Call observations: `{"id":11,"parent":10,"depth":1,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.0005,0.5],"flags":[],"metrics":{"tol":1.999777722222222e-11,"bu_length":1.2368220477408132,"bv_length":0.0013329999999999998},"initial_normal_length":0.0016486837896385036,"actual_frame":{"bu":[2.222614453595284e-16,1.154123188110062,-0.444666666666667],"bv":[-0.0013329999999999998,0.0,0.0],"normal_numerator":[0.0,0.000592740666666667,0.0015384462097507124],"last_length":0.0016486837896385036},"frame_consistency":{"original_bu_cross_bv":[0.0,0.000592740666666667,0.0015384462097507124],"actual_bu_cross_bv":[0.0,0.000592740666666667,0.0015384462097507124],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":12,"parent":10,"depth":1,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.001,0.5],"flags":[],"metrics":{"tol":1.999555333333333e-11,"bu_length":1.2363632651679644,"bv_length":0.0026653333333333325},"initial_normal_length":0.003295320222761013,"actual_frame":{"bu":[2.224782857940255e-16,1.153545837840872,-0.44488888888888944],"bv":[-0.0026653333333333325,0.0,0.0],"normal_numerator":[0.0,0.0011857771851851863,0.0030745841731252034],"last_length":0.003295320222761013},"frame_consistency":{"original_bu_cross_bv":[0.0,0.0011857771851851863,0.0030745841731252034],"actual_bu_cross_bv":[0.0,0.0011857771851851863,0.0030745841731252034],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## dome_pole_d2_0_p3
Input SHA-256: `661d4fc940fe7090d3e2cd55fef34eb8327db011f0aa6a4cf94f9eb40035739f`; source: `fixture:fixtures/surface.offset_surface/edge_cases.json#11 (upstream edge)`; group: `four-term-change-through-pole-extrapolation`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[62]` | -36516.596417939094 / `c0e1d49315db12e5` | -36516.596417939094 / `c0e1d49315db12e5` | 17.363413351912133 / `40315d08a84d6471` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[63]` | 46395.152384292 / `40e6a764e05505d2` | 46395.152384292 / `40e6a764e05505d2` | -12.118856013895144 / `c0283cdab20939a2` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[64]` | -27094.279758059813 / `c0da7591e78e596c` | -27094.279758059813 / `c0da7591e78e596c` | 2.6376324312136714 / `400519df08377419` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[76]` | 2.7159549656285985e-11 / `3dbddcbbcdaaadc1` | 2.7159549656285985e-11 / `3dbddcbbcdaaadc1` | 2.7159626420455324e-11 / `3dbddcc155b73817` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[77]` | -3.9565121502084266e-12 / `bd9166a2fc3cd7d8` | -3.9565121502084266e-12 / `bd9166a2fc3cd7d8` | -3.954735793369026e-12 / `bd9164a2fc3cd7d8` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[84]` | -5.6218280966629785e-09 / `be382543eebd881a` | -5.6218280966629785e-09 / `be382543eebd881a` | -5.624664356700398e-09 / `be38286244d09184` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[85]` | 69405.23659707583 / `40f0f1d3c91a03f0` | 69405.23659707583 / `40f0f1d3c91a03f0` | -23.503934401593 / `c0378101d84e2bd8` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[86]` | -35670.22143757666 / `c0e16ac7160441bc` | -35670.22143757666 / `c0e16ac7160441bc` | 5.438906566995297 / `4015c170b91cfa4d` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[91]` | -1.7811989466529738e-13 / `bd4911720e3ff541` | -1.7811989466529738e-13 / `bd4911720e3ff541` | -6.906472668416197e-13 / `bd684ccc2c0d637a` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[92]` | -1.6477782368032925e-13 / `bd4730bf2bd58748` | -1.6477782368032925e-13 / `bd4730bf2bd58748` | 9.860205767612441e-14 / `3d3bc106ec4fcc32` | observed-extrapolation-bit-match | conditional-method-agreement |
Call observations: `{"id":7,"parent":null,"depth":0,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.0,0.8],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":2e-11,"bu_length":0.838936893402067,"bv_length":0.0},"initial_normal_length":null}`.
Call observations: `{"id":8,"parent":7,"depth":1,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.0005,0.8],"flags":[],"metrics":{"tol":1.999833166666667e-11,"bu_length":0.8392020019041898,"bv_length":0.0012600000000000003},"initial_normal_length":0.0010085951742894671,"actual_frame":{"bu":[-0.6479999999999999,0.4156921938165306,-0.33399999999999996],"bv":[-0.0009900000000000002,-0.000779422863405995,-4.33574989875795e-19],"normal_numerator":[-0.00026032723637760247,0.00033065999999999976,0.0009166012873654501],"last_length":0.0010085951742894671},"frame_consistency":{"original_bu_cross_bv":[-0.00026032723637760247,0.00033065999999999976,0.0009166012873654501],"actual_bu_cross_bv":[-0.00026032723637760247,0.00033065999999999976,0.0009166012873654501],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":9,"parent":7,"depth":1,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[0.001,0.8],"flags":[],"metrics":{"tol":1.999666e-11,"bu_length":0.839467556119817,"bv_length":0.0025200000000000005},"initial_normal_length":0.0020178919122688425,"actual_frame":{"bu":[-0.648,0.41569219381653055,-0.33466666666666717],"bv":[-0.001980000000000001,-0.0015588457268119896,0.0],"normal_numerator":[-0.0005216937032397466,0.0006626400000000012,0.0018332025747309004],"last_length":0.0020178919122688425},"frame_consistency":{"original_bu_cross_bv":[-0.0005216937032397466,0.0006626400000000012,0.0018332025747309004],"actual_bu_cross_bv":[-0.0005216937032397466,0.0006626400000000012,0.0018332025747309004],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":10,"parent":null,"depth":0,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.0,0.5],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":2e-11,"bu_length":0.7300589778306347,"bv_length":0.0},"initial_normal_length":null}`.
Call observations: `{"id":11,"parent":10,"depth":1,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.0005,0.5],"flags":[],"metrics":{"tol":1.999833166666667e-11,"bu_length":0.7303636080747727,"bv_length":0.0011250000000000001},"initial_normal_length":0.0008216590590841194,"actual_frame":{"bu":[1.1123922230635156e-16,0.6495190528383289,-0.3340000000000005],"bv":[-0.0011250000000000001,4.594451783440283e-20,0.0],"normal_numerator":[1.534546895669057e-20,0.00037575000000000065,0.00073070893444312],"last_length":0.0008216590590841194},"frame_consistency":{"original_bu_cross_bv":[1.534546895669057e-20,0.00037575000000000065,0.00073070893444312],"actual_bu_cross_bv":[1.534546895669057e-20,0.00037575000000000065,0.00073070893444312],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":12,"parent":10,"depth":1,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.001,0.5],"flags":[],"metrics":{"tol":1.999666e-11,"bu_length":0.7306687195834908,"bv_length":0.0022499999999999994},"initial_normal_length":0.0016440046190628538,"actual_frame":{"bu":[1.1167314140336218e-16,0.6495190528383289,-0.334666666666667],"bv":[-0.0022499999999999994,9.187504248477472e-20,0.0],"normal_numerator":[3.074751421823797e-20,0.0007530000000000005,0.0014614178688862397],"last_length":0.0016440046190628538},"frame_consistency":{"original_bu_cross_bv":[3.074751421823797e-20,0.0007530000000000005,0.0014614178688862397],"actual_bu_cross_bv":[3.074751421823797e-20,0.0007530000000000005,0.0014614178688862397],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## column_pole_vmax
Input SHA-256: `11f9ca69888fba09c5895e4be25f59a46db965f2bdc1d4a1bf8373ca53f925e0`; source: `fixture:fixtures/surface.offset_surface/edge_cases.json#12 (upstream edge)`; group: `four-term-change-through-pole-extrapolation`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[30]` | 804.3075178059373 / `40892275cbe53b82` | 804.3075178059373 / `40892275cbe53b82` | 0.49304202909925254 / `3fdf8e0027a239ac` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[31]` | 317.74528010268807 / `4073dbecaad4367a` | 317.74528010268807 / `4073dbecaad4367a` | 3.182963363973281 / `400976b57f050d14` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[32]` | -722.6840166196926 / `c0869578ddb49c00` | -722.6840166196926 / `c0869578ddb49c00` | -3.0577397396752556e-10 / `bdf5033b8e22e192` | observed-extrapolation-bit-match | conditional-method-disagreement |
Call observations: `{"id":3,"parent":null,"depth":0,"orders":[2,1],"upper":false,"simple":false,"requested_uv":[0.2,1.0],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":1.8000000000000002e-11,"bu_length":0.0,"bv_length":1.6616961076991084},"initial_normal_length":null}`.
Call observations: `{"id":4,"parent":3,"depth":1,"orders":[2,1],"upper":false,"simple":false,"requested_uv":[0.2,0.9995],"flags":[],"metrics":{"tol":1.7994668e-11,"bu_length":0.0010308185679080142,"bv_length":1.6608652596452593},"initial_normal_length":0.0017119527150091414,"actual_frame":{"bu":[-0.0003756567665111732,0.0009599317234669866,3.3306690738754696e-16],"bv":[-1.1922974452246613,-0.44750410988371203,1.0661333333333345],"normal_numerator":[0.00102341520811242,0.00040050020066938213,0.0013126320883991704],"last_length":0.0017119527150091414},"frame_consistency":{"original_bu_cross_bv":[0.00102341520811242,0.00040050020066938213,0.0013126320883991704],"actual_bu_cross_bv":[0.00102341520811242,0.00040050020066938213,0.0013126320883991704],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":5,"parent":3,"depth":1,"orders":[2,1],"upper":false,"simple":false,"requested_uv":[0.2,0.999],"flags":[],"metrics":{"tol":1.7989338666666667e-11,"bu_length":0.0020611215976477615,"bv_length":1.6600344115914094},"initial_normal_length":0.003421336858803352,"actual_frame":{"bu":[-0.0007511256576703359,0.0019193833610509827,1.1102230246251565e-16],"bv":[-1.1917009982785758,-0.4472802458967766,1.0656000000000008],"normal_numerator":[0.0020452949095359787,0.0008003995008133782,0.0026232947363059103],"last_length":0.003421336858803352},"frame_consistency":{"original_bu_cross_bv":[0.0020452949095359787,0.0008003995008133782,0.0026232947363059103],"actual_bu_cross_bv":[0.0020452949095359787,0.0008003995008133782,0.0026232947363059103],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## gen0129
Input SHA-256: `a9d3c204d029fc65113bbf3b65334c0af1ad8728352709d606da3e60acc8c703`; source: `generated:seed=7714667220713742090`; group: `four-term-change-with-base-normal-substitution`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[87]` | 408813406.5192221 / `41b85dff5e84ebbd` | 408813406.5192221 / `41b85dff5e84ebbd` | 1989626300.132512 / `41dda5d26f087b14` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[88]` | -3928967550.381878 / `c1ed45e92fcc3858` | -3928967550.381878 / `c1ed45e92fcc3858` | 175960762.49877852 / `41a4f9e574ff5fe6` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[89]` | -9752468135.745756 / `c2022a56d53df74f` | -9752468135.745756 / `c2022a56d53df74f` | -4796352783.94503 / `c1f1de2890ff1ed8` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
Call observations: `{"id":1,"parent":null,"depth":0,"orders":[2,1],"upper":false,"simple":true,"requested_uv":[1.0886666264605989,1.0],"flags":[{"name":"FIRST_DERIVATIVE_FALLBACK","data":[]}],"metrics":{"tol":2.950750770144804e-11,"bu_length":1.2480231380815836e-16,"bv_length":1.2490008174278682},"initial_normal_length":1.5081082347325663e-16,"actual_frame":{"bu":[-6.25584653524136e-17,-9.725293487194975e-17,4.694595406862234e-17],"bv":[-0.23895391535694135,-0.7278436072245849,-0.9864825146414785],"normal_numerator":[-2.958922337065397e-11,2.510549876405732e-11,-1.1355919480120026e-11],"last_length":4.0432228668594414e-11},"frame_consistency":{"original_bu_cross_bv":[1.3010763230265068e-16,-7.293075174782523e-17,2.2293809516928916e-17],"actual_bu_cross_bv":[1.3010763230265068e-16,-7.293075174782523e-17,2.2293809516928916e-17],"original_cross_minus_c":[2.958935347828627e-11,-2.5105571694809067e-11,1.1355941773929543e-11],"actual_cross_minus_c":[2.958935347828627e-11,-2.5105571694809067e-11,1.1355941773929543e-11],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## gen0625
Input SHA-256: `303f80059f8fa7fb57ff90720b7959555854c2028aba9338c16230da77fa803e`; source: `generated:seed=7714667220713742586`; group: `four-term-change-through-pole-extrapolation`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[18]` | -41.38214163512213 / `c044b0ea0460a50f` | -41.38214163512213 / `c044b0ea0460a50f` | 0.4311314373492805 / `3fdb97a84fec5418` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[19]` | 17.251036740754373 / `40314043f19fa26c` | 17.251036740754373 / `40314043f19fa26c` | -4.445344540699154 / `c011c80866370521` | observed-extrapolation-bit-match | conditional-method-agreement |
| `values.out[20]` | 19.042788456854957 / `40330af42f2ed69e` | 19.042788456854957 / `40330af42f2ed69e` | -21.561707980624742 / `c0358fcc181eaf7b` | observed-extrapolation-bit-match | conditional-method-agreement |
Call observations: `{"id":3,"parent":null,"depth":0,"orders":[0,3],"upper":false,"simple":false,"requested_uv":[0.0,0.0],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":3.233594710081255e-11,"bu_length":1.6119342234560845,"bv_length":0.0},"initial_normal_length":null}`.
Call observations: `{"id":4,"parent":3,"depth":1,"orders":[0,3],"upper":false,"simple":false,"requested_uv":[0.0005,0.0],"flags":[],"metrics":{"tol":3.232877517676317e-11,"bu_length":1.6088736557910641,"bv_length":0.007900918993596164},"initial_normal_length":0.012290407302773773,"actual_frame":{"bu":[0.7227253537681203,-0.11182189556031481,1.4330521159373606],"bv":[0.005311997271326648,-0.002756337842935318,-0.0051584695044547425],"normal_numerator":[0.004526805616234885,0.011340525627037253,-0.0013980776385489196],"last_length":0.012290407302773773},"frame_consistency":{"original_bu_cross_bv":[0.004526805616234885,0.011340525627037253,-0.0013980776385489196],"actual_bu_cross_bv":[0.004526805616234885,0.011340525627037253,-0.0013980776385489196],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":5,"parent":3,"depth":1,"orders":[0,3],"upper":false,"simple":false,"requested_uv":[0.001,0.0],"flags":[],"metrics":{"tol":3.2321616572547104e-11,"bu_length":1.6058181966582152,"bv_length":0.015786314644748924},"initial_normal_length":0.02451014372115719,"actual_frame":{"bu":[0.7211419193254499,-0.11220542166867996,1.430390281097576],"bv":[0.010613557788046922,-0.005507260166959453,-0.010306803898213288],"normal_numerator":[0.00903401069575003,0.022614198253158364,-0.0027806174400130303],"last_length":0.02451014372115719},"frame_consistency":{"original_bu_cross_bv":[0.00903401069575003,0.022614198253158364,-0.0027806174400130303],"actual_bu_cross_bv":[0.00903401069575003,0.022614198253158364,-0.0027806174400130303],"original_cross_minus_c":[0.0,0.0,0.0],"actual_cross_minus_c":[0.0,0.0,0.0],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## gen0939
Input SHA-256: `1c6b981b2254fe90432cbbd207d66d6b2b1527e22c258784a161af10c93f2886`; source: `generated:seed=7714667220713742900`; group: `four-term-change-with-base-normal-substitution`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[73]` | 1.0848196708517109e-08 / `3e474bdbf53ba300` | 1.0848196708517109e-08 / `3e474bdbf53ba300` | -7.360343721528044e-10 / `be094a3a0fe47340` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[74]` | 1.7613620330973e-08 / `3e52e99857d63c90` | 1.7613620330973e-08 / `3e52e99857d63c90` | -1.825197333071134e-09 / `be1f5b4d81dcb8c0` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[75]` | -1.3835637258935033e-08 / `be4db638d66e20a0` | -1.3835637258935033e-08 / `be4db638d66e20a0` | 8.003712284519026e-10 / `3e0b8023c879b3c0` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
Call observations: `{"id":0,"parent":null,"depth":0,"orders":[1,2],"upper":false,"simple":false,"requested_uv":[-0.0794828784673477,0.29582171869995744],"flags":[{"name":"FIRST_DERIVATIVE_FALLBACK","data":[]},{"name":"NORMAL_SUBSTITUTION","data":[]}],"metrics":{"tol":1.0000000013143557e-11,"bu_length":1.649304856096115e-09,"bv_length":7.778353082142719e-10},"initial_normal_length":1.282854787569197e-18,"actual_frame":{"bu":[-5.713909554295857e-10,-1.4169192193302763e-09,6.213363101316163e-10],"bv":[-9.29617217803721e-12,5.061549977198975e-12,2.9936424273246214e-12],"normal_numerator":[-0.40715083087317533,-0.2240894008558114,-0.8854446009454044],"last_length":1.0},"frame_consistency":{"original_bu_cross_bv":[-5.223153926484294e-19,-2.874741607313905e-19,-1.135896845450109e-18],"actual_bu_cross_bv":[-7.386674277458374e-21,-4.0655091126862705e-21,-1.6064048902690637e-20],"original_cross_minus_c":[0.40715083087317533,0.2240894008558114,0.8854446009454044],"actual_cross_minus_c":[0.40715083087317533,0.2240894008558114,0.8854446009454044],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[6.499666594887658e-10,-3.4806736596725467e-10,-2.1078253541144865e-10],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## gen0984
Input SHA-256: `d4ca45f9eff51f192c651d9dfed1859679e7c4a94c4db92e2b81231e399842f1`; source: `generated:seed=7714667220713742945`; group: `four-term-change-with-base-normal-substitution`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[24]` | -4.849340264908569e-43 / `b725a0f7bf576c21` | -4.849340264908569e-43 / `b725a0f7bf576c21` | 4.657602782245071e-13 / `3d60633214de1000` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[25]` | 7.94486647397908e-44 / `36fc5925a8597a77` | 7.94486647397908e-44 / `36fc5925a8597a77` | 1.5727236216194363e-10 / `3de59d8780d56990` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[26]` | -3.5549238515011677e-43 / `b71fb602cfd39551` | -3.5549238515011677e-43 / `b71fb602cfd39551` | 2.6952852113598536e-11 / `3dbda28dacff0000` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
Call observations: `{"id":0,"parent":null,"depth":0,"orders":[3,3],"upper":true,"simple":false,"requested_uv":[0.8589696103265788,3.079460609169519],"flags":[{"name":"FIRST_DERIVATIVE_FALLBACK","data":[]},{"name":"NORMAL_SUBSTITUTION","data":[]}],"metrics":{"tol":1.000000001815874e-11,"bu_length":2.0025724562166515e-09,"bv_length":1.3005423264886195e-09},"initial_normal_length":2.6043931111221585e-18,"actual_frame":{"bu":[-4.796151181650839e-10,2.2934938910862468e-10,-1.9307160947535984e-09],"bv":[-1.0630750136441194e-11,7.370024697340104e-13,2.72836568949307e-12],"normal_numerator":[0.09300271958875997,0.9911581345769602,0.09463639052190691],"last_length":1.0},"frame_consistency":{"original_bu_cross_bv":[2.422156422125923e-19,2.5813654177249248e-18,2.4647036353672074e-19],"actual_bu_cross_bv":[2.0486915343387727e-21,2.1833525820294806e-20,2.08467852294978e-21],"original_cross_minus_c":[-0.09300271958875997,-0.9911581345769602,-0.09463639052190691],"actual_cross_minus_c":[-0.09300271958875997,-0.9911581345769602,-0.09463639052190691],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[1.2445736129834702e-09,-8.560304141741039e-11,-3.265401366224267e-10],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## gen1037
Input SHA-256: `1310ac82ee6a4f0c6f3648efb4e0764f7047020bfc45df8d235dc06252791025`; source: `generated:seed=7714667220713742998`; group: `four-term-change-through-pole-extrapolation`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[65]` | -6.487120502409939e-10 / `be064a21ac829dc0` | -6.487120502409939e-10 / `be064a21ac829dc0` | -6.803739754770468e-57 / `b4455a9818bee467` | observed-extrapolation-bit-match | unknown |
| `values.out[66]` | -2.152119646986185e-10 / `bded94190c4ca900` | -2.152119646986185e-10 / `bded94190c4ca900` | -4.9418401556543204e-58 / `b408d0fc197b3818` | observed-extrapolation-bit-match | unknown |
| `values.out[67]` | 1.1803637361190133e-09 / `3e14474b6ba84ce0` | 1.1803637361190133e-09 / `3e14474b6ba84ce0` | 3.0708081607850135e-57 / `3433469934afd09e` | observed-extrapolation-bit-match | unknown |
Call observations: `{"id":0,"parent":null,"depth":0,"orders":[0,3],"upper":false,"simple":false,"requested_uv":[0.5180884505593667,1.0],"flags":[{"name":"POLE","data":[]}],"metrics":{"tol":1.0000000011913042e-11,"bu_length":2.9245251020114406e-25,"bv_length":1.3274758393317606e-09},"initial_normal_length":null}`.
Call observations: `{"id":1,"parent":0,"depth":1,"orders":[0,3],"upper":false,"simple":false,"requested_uv":[0.5180884505593667,0.95],"flags":[{"name":"FIRST_DERIVATIVE_FALLBACK","data":[]},{"name":"NORMAL_SUBSTITUTION","data":[]}],"metrics":{"tol":1.0000000012163807e-11,"bu_length":5.206418492875112e-11,"bv_length":1.3274758393317612e-09},"initial_normal_length":6.910484409813484e-20,"actual_frame":{"bu":[2.88741263054076e-12,-9.877359044558195e-12,-3.885952508747662e-12],"bv":[1.1568274365810607e-09,5.015288117359976e-10,-4.152243212789128e-10],"normal_numerator":[0.4143363779627865,-0.22574987314074987,0.8816815528713382],"last_length":1.0},"frame_consistency":{"original_bu_cross_bv":[2.863265080330423e-20,-1.560040978856524e-20,6.092846625537525e-20],"actual_bu_cross_bv":[6.050236849479541e-21,-3.296452529601853e-21,1.287452056929363e-20],"original_cross_minus_c":[-0.4143363779627865,0.22574987314074987,-0.8816815528713382],"actual_cross_minus_c":[-0.4143363779627865,0.22574987314074987,-0.8816815528713382],"actual_bu_minus_original":[-1.151360367736408e-11,3.654783797307647e-11,1.4768568752020715e-11],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
Call observations: `{"id":2,"parent":0,"depth":1,"orders":[0,3],"upper":false,"simple":false,"requested_uv":[0.5180884505593667,0.9],"flags":[{"name":"FIRST_DERIVATIVE_FALLBACK","data":[]},{"name":"NORMAL_SUBSTITUTION","data":[]}],"metrics":{"tol":1.0000000012414572e-11,"bu_length":1.0412836985750095e-10,"bv_length":1.3274758393317606e-09},"initial_normal_length":1.3820968819626795e-19,"actual_frame":{"bu":[2.8874126306131386e-12,-9.877359044805864e-12,-3.8859525088451815e-12],"bv":[1.15682743658106e-09,5.015288117359983e-10,-4.1522432127891263e-10],"normal_numerator":[0.41433637796278855,-0.2257498731407564,0.8816815528713355],"last_length":1.0},"frame_consistency":{"original_bu_cross_bv":[5.726530160660803e-20,-3.120081957713098e-20,1.218569325107486e-19],"actual_bu_cross_bv":[6.050236849631289e-21,-3.2964525296846103e-21,1.2874520569616435e-20],"original_cross_minus_c":[-0.41433637796278855,0.2257498731407564,-0.8816815528713355],"actual_cross_minus_c":[-0.41433637796278855,0.2257498731407564,-0.8816815528713355],"actual_bu_minus_original":[-2.591461998519499e-11,8.297303499046253e-11,3.342309001269147e-11],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## gen1529
Input SHA-256: `6ba193fe1f8be92dac5751330e24e20c0d75ab52a8e2782f249bcb30619beca0`; source: `generated:seed=7714667220713743490`; group: `four-term-change-with-base-normal-substitution`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[128]` | -1.376542039020458e-10 / `bde2eb46d7c1a400` | -1.376542039020458e-10 / `bde2eb46d7c1a400` | -2.2485717587829158e-70 / `b178d49ca2cc986a` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[129]` | 6.833061104840976e-10 / `3e077a6c9280d100` | 6.833061104840976e-10 / `3e077a6c9280d100` | 3.8508009578157174e-70 / `318543056683979d` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[130]` | 4.1549222966795273e-10 / `3dfc8d6aa694cb78` | 4.1549222966795273e-10 / `3dfc8d6aa694cb78` | -9.755909645490872e-70 / `b19aeee1501ad0d7` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
Call observations: `{"id":0,"parent":null,"depth":0,"orders":[0,3],"upper":false,"simple":false,"requested_uv":[0.596904387581208,0.7514670699906439],"flags":[{"name":"FIRST_DERIVATIVE_FALLBACK","data":[]},{"name":"NORMAL_SUBSTITUTION","data":[]}],"metrics":{"tol":1.0000000030157418e-11,"bu_length":3.879600138894495e-09,"bv_length":1.5926682048669807e-09},"initial_normal_length":6.178280238059805e-18,"actual_frame":{"bu":[7.615026599646428e-10,-1.7148043855026999e-09,3.395711538991154e-09],"bv":[-1.0648605786014234e-11,6.014722535952464e-13,2.6917330239139187e-12],"normal_numerator":[-0.15601940236281028,-0.8953442697042284,-0.4171529513190017],"last_length":1.0},"frame_consistency":{"original_bu_cross_bv":[-9.63931590372052e-19,-5.531687807773723e-18,-2.5772878353825118e-18],"actual_bu_cross_bv":[-6.658221865926424e-21,-3.820935539936162e-20,-1.7802253180338927e-20],"original_cross_minus_c":[0.15601940236281028,0.8953442697042284,0.4171529513190017],"actual_cross_minus_c":[0.15601940236281028,0.8953442697042284,0.4171529513190017],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[1.526499677937527e-09,-7.637893214484336e-11,-4.06992513657156e-10],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## gen1558
Input SHA-256: `2fdae45608cfb1636a48c992a1936b801b4ce6230c605804f556230c81acd6af`; source: `generated:seed=7714667220713743519`; group: `four-term-change-with-base-normal-substitution`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[99]` | 184401972812.6312 / `4245779b672650cb` | 184401972812.6312 / `4245779b672650cb` | -71070903189.75255 / `c2308c27eb95c0a7` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[100]` | -21124084384.399666 / `c213ac5fca819942` | -21124084384.399666 / `c213ac5fca819942` | -6739677838.116085 / `c1f91b7528e1db7c` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[101]` | -86153223578.61398 / `c2340f21dd9a9d2e` | -86153223578.61398 / `c2340f21dd9a9d2e` | 20032375673.53098 / `4212a8172de61fb9` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
Call observations: `{"id":1,"parent":null,"depth":0,"orders":[3,2],"upper":true,"simple":true,"requested_uv":[0.24802571114379068,0.24776584150699543],"flags":[{"name":"FIRST_DERIVATIVE_FALLBACK","data":[]}],"metrics":{"tol":3.0792860677821205e-11,"bu_length":0.33024706155265693,"bv_length":4.965070200517434e-16},"initial_normal_length":8.80587227383911e-17,"actual_frame":{"bu":[-0.2707511610094341,0.08109208334024395,0.1708244844738213],"bv":[4.440892098500626e-16,-2.220446049250313e-16,-4.336808689942018e-19],"normal_numerator":[2.8577077368056407e-12,-6.915387874231117e-12,7.812175763349337e-12],"last_length":1.0817540067756827e-11},"frame_consistency":{"original_bu_cross_bv":[3.789548708134025e-17,7.574389073423583e-17,2.4106715363668968e-17],"actual_bu_cross_bv":[3.789548708134025e-17,7.574389073423583e-17,2.4106715363668968e-17],"original_cross_minus_c":[-2.8576698413185595e-12,6.915463618121851e-12,-7.812151656633974e-12],"actual_cross_minus_c":[-2.8576698413185595e-12,6.915463618121851e-12,-7.812151656633974e-12],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## gen1848
Input SHA-256: `500a01ea137c3d6f62efcd167d833cd6e74b7b6116a4fbc06979dea28f6d0c90`; source: `generated:seed=7714667220713743809`; group: `four-term-change-with-base-normal-substitution`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[22]` | 3.486797671589445e-09 / `3e2df38c96393bd5` | 3.486797671589445e-09 / `3e2df38c96393bd5` | 3.319183405489696e-09 / `3e2c82f624bd8b56` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[23]` | 1.7417027498990135e-08 / `3e52b38e5a37a87c` | 1.7417027498990135e-08 / `3e52b38e5a37a87c` | -5.375502194146476e-08 / `be6cdc08b191daf1` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[24]` | 1.568865732240521e-08 / `3e50d8771d15a273` | 1.568865732240521e-08 / `3e50d8771d15a273` | -4.2875187938172774e-08 / `be6704b890d7f580` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
Call observations: `{"id":0,"parent":null,"depth":0,"orders":[3,2],"upper":true,"simple":false,"requested_uv":[0.75,0.07696786997360228],"flags":[{"name":"FIRST_DERIVATIVE_FALLBACK","data":[]},{"name":"NORMAL_SUBSTITUTION","data":[]}],"metrics":{"tol":1.0000000017312342e-11,"bu_length":1.4537666451830117e-09,"bv_length":2.69944637051829e-09},"initial_normal_length":3.9080197742141875e-18,"actual_frame":{"bu":[-8.834044020425902e-12,-3.3212898938902318e-12,5.650548655208509e-12],"bv":[3.9716472387781525e-10,1.9838916877145435e-09,1.7870211696643567e-09],"normal_numerator":[-0.5774009480622939,0.6072229018498705,-0.5457916201681616],"last_length":1.0},"frame_consistency":{"original_bu_cross_bv":[-2.2564943226774636e-18,2.3730391077850147e-18,-2.1329644442175744e-18],"actual_bu_cross_bv":[-1.7145291859068882e-20,1.8030822274651958e-20,-1.6206687317402223e-20],"original_cross_minus_c":[0.5774009480622939,-0.6072229018498705,0.5457916201681616],"actual_cross_minus_c":[0.5774009480622939,-0.6072229018498705,0.5457916201681616],"actual_bu_minus_original":[1.1343143939921075e-09,3.3638219248502604e-10,-8.257643004879924e-10],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## gen1891
Input SHA-256: `6b0de4ebc0b7a060198f5f13a960340b989ba8436594d84679a569c237359d81`; source: `generated:seed=7714667220713743852`; group: `four-term-change-with-base-normal-substitution`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[30]` | -8398510252.595567 / `c1ff49718ac98771` | -8398510252.595567 / `c1ff49718ac98771` | -2799288442.387942 / `c1e4db380f4c6a05` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[31]` | 4239901075.871881 / `41ef96f8327be673` | 4239901075.871881 / `41ef96f8327be673` | 1412818698.1934502 / `41d50d79c28c617d` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[32]` | -4202450852.6995087 / `c1ef4f89f4966260` | -4202450852.6995087 / `c1ef4f89f4966260` | -1400431871.3352797 / `c1d4de393fd57539` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
Call observations: `{"id":1,"parent":null,"depth":0,"orders":[3,3],"upper":true,"simple":true,"requested_uv":[0.867062428436971,0.5322836176409917],"flags":[{"name":"FIRST_DERIVATIVE_FALLBACK","data":[]}],"metrics":{"tol":3.006239512953488e-11,"bu_length":8.881784197001252e-16,"bv_length":3.9897471566542073},"initial_normal_length":3.3463584783519075e-15,"actual_frame":{"bu":[0.0,-8.881784197001252e-16,0.0],"bv":[3.4062361110375186,-1.3125490808537137,1.6102337843444978],"normal_numerator":[-4.597865075844421e-11,2.7776286068118742e-11,1.1990301108794027e-10],"last_length":1.3138603602080275e-10},"frame_consistency":{"original_bu_cross_bv":[-1.4301748979268483e-15,0.0,3.0253454062268035e-15],"actual_bu_cross_bv":[-1.4301748979268483e-15,0.0,3.0253454062268035e-15],"original_cross_minus_c":[4.597722058354628e-11,-2.7776286068118742e-11,-1.1989998574253404e-10],"actual_cross_minus_c":[4.597722058354628e-11,-2.7776286068118742e-11,-1.1989998574253404e-10],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
## gen2878
Input SHA-256: `6bc6673a9ab477f6cf5a8f005cdafe977ba8c89c4100d64e5a96e5e7336b258e`; source: `generated:seed=7714667220713744839`; group: `four-term-change-with-base-normal-substitution`.
| field | C++ value / bits | legacy Rust value / bits | corrected Rust value / bits | method | jet check |
|---|---|---|---|---|---|
| `values.out[74]` | -64460144489.855675 / `c22e043f7ed3b61b` | -64460144489.855675 / `c22e043f7ed3b61b` | 8931279177.494081 / `4200a2c40a4bf3e1` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[75]` | -16141064940.512512 / `c20e10a8d76419a0` | -16141064940.512512 / `c20e10a8d76419a0` | 16497025242.98624 / `420eba6506d7e3d2` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
| `values.out[76]` | -210371020904.86896 / `c2487d8b84346f3a` | -210371020904.86896 / `c2487d8b84346f3a` | 75814238396.14186 / `4231a6e178bc2451` | observed-frame-recurrence-bit-match | non-pole-root-or-substitution-unknown |
Call observations: `{"id":0,"parent":null,"depth":0,"orders":[2,3],"upper":true,"simple":true,"requested_uv":[0.0,0.7822932073833477],"flags":[{"name":"FIRST_DERIVATIVE_FALLBACK","data":[]}],"metrics":{"tol":3.445555902891527e-11,"bu_length":1.0372476994494015,"bv_length":2.220446049250313e-16},"initial_normal_length":9.20233809571358e-17,"actual_frame":{"bu":[-0.4140170541043746,0.018640326159397702,-0.950854987453125],"bv":[0.0,0.0,-2.220446049250313e-16],"normal_numerator":[2.2372328487251198e-11,2.99585887417777e-11,-9.15395910331092e-12],"last_length":3.849458518552356e-11},"frame_consistency":{"original_bu_cross_bv":[-4.138983857737189e-18,-9.193025321083117e-17,-0.0],"actual_bu_cross_bv":[-4.138983857737189e-18,-9.193025321083117e-17,-0.0],"original_cross_minus_c":[-2.2372332626235056e-11,-2.9958680672030914e-11,9.15395910331092e-12],"actual_cross_minus_c":[-2.2372332626235056e-11,-2.9958680672030914e-11,9.15395910331092e-12],"actual_bu_minus_original":[0.0,0.0,0.0],"actual_bv_minus_original":[0.0,0.0,0.0],"limitation":"Higher derivatives remain from original base; replacement frame need not be a differentiable normal field."}}`.
@@ -0,0 +1,44 @@
# surface.offset_surface: fresh goldens migration measurements (2026-11-06)
Updates: plan/findings/surface.offset_surface--default-third-derivatives-diagnostic-attribution.md
## Scope and provenance
PR #1914 still owns exactly four unconditional third-order terms and its default-kernel regression. Requested-grid/local-initialization work remains #2717's separate fix, now in standalone PR #2970 after #2765 was closed in its favour. The November 6 migration direction on #1914 supersedes the historical native-accounting/marker proposals, not the historical observations themselves. None of those observations is a blanket correctness certificate.
The original published head `052366249e42cfe4ad9defb109fea81c9060a0a3`, original checkout/ref, complete reachable history and source/evidence are preserved. A verified history bundle and an archive whose 22 members were read back precede the isolated refresh. The refresh's measured numerical source is `d9f7742902f8d21028fe1bf67f5c8ffada4c68f1`, rebased linearly on main `1483513fe360e7d0db93241930e9d1699f7e3fd1`. Its numerical file SHA-256 is `86565c6a5d30bf5e8efb6e3dcbe8b34b4ecb4683d60982a4e214adb525889bef`.
The retired `crates/difftest/known_mismatches/surface.offset_surface.toml` is not restored. Current-main plan metadata is retained, including its later extension-removal update. All eight historical records are retained unchanged. No C++ code was built, linked or run for this migration.
## Fresh measurements, not blessed results
All commands used Rust 1.98.0, `CARGO_BUILD_JOBS=2`, `nice -n 10`, and the current Rust-only runners. Fixture data came from the existing local reference at pin `3fd5b9548d19aa8c12c29bc9637a96d42a06f8a5`; the shared root reference was not changed. Two initial golden invocations stopped during setup because the isolated worktree lacked that fixture-data link; they measured no case output. The corrected setup changed only that ignored link.
- `cargo fmt --all --check`: pass; all 23 `surface::offset_surface::tests`: pass.
- `cargo run --profile goldens -p goldens -- --unit surface.offset_surface --goldens`: **3,182 cases, 443 changed, zero added, removed or broken, zero known failing**. This is a failed gate.
- An evidence-only `--bless --goldens-dir <temporary-directory>` measured the same 3,182 encodings outside the repository. It did not approve or replace committed expectations.
- A temporary collector used only the public registry/runner/output APIs, without kernel instrumentation, to retain every input, source, raw binary64 value/bits and golden encoding. All 3,182 encodings equal the independent evidence-directory measurement.
- Reverting exactly the four production terms, while retaining the regression, compiles and fails the intended assertion: `Suuv.x: got 1.850528767371623, want 1.740100020590324` (test exit 101). Its raw-output collector succeeds.
- The two raw runs have **3,182 unique unbroken identities and identical inputs and sources**, with no length/key changes. The four corrected terms were then restored byte-for-byte to the measured numerical source.
Raw corrected JSONL SHA-256: `735d018cce5a61c0ffd3479cf6b2f780182779dcfba91d2f8bb89e20583bb958`. Four-term-reverted JSONL SHA-256: `56cd28f6ad7ff18c4890469a148c0cfbaf49b70ff241ff9136cfbfee01d84dd1`. Temporary collector source SHA-256: `cb3b45f210f54494cee4fe3276ace13ca3ade2ac6c1d0e60bab9dfa613ffb7cb`.
## Attribution under the actual current gate
Comparison follows `crates/goldens/src/golden.rs`: arrays above 16 values are encoded in blocks of 256; block agreement uses the larger absolute sum, and 256 times that scale for the weighted sum. It is not the historical raw component-by-component comparator. The unit has no absolute floors. A Python transcription reproduces the gate's 443 changed identities; its full per-case comparison, old/new encodings, raw differences and input hashes are retained with the raw outputs.
**442 encoded changes are caused by the four terms. One encoded change, `gen1558`, is inherited:** the four-term-reverted run also disagrees with the committed golden. Corrected versus reverted encodings agree for that case under the current gate. Its `[sum, abs_sum, weighted_sum]` is:
| Committed golden | Four-term-reverted | Corrected |
|---|---|---|
| `[-3.10840560526347e21, 4.5707629311690324e21, -3.327944456358365e23]` | `[-3.108411605492941e21, 4.570766065003835e21, -3.327951246219241e23]` | `[-3.1084116056278434e21, 4.5707660648099993e21, -3.327951246351876e23]` |
That isolates inherited behavior, not its cause or correctness; no platform explanation is asserted as proved. At raw-bit level the four-term bundle moves 2,575 components across 549 cases; 513 cases have at least one component change beyond the raw `1e-9` relative rule. Neither number is the encoded gate's changed count.
Of the 443 encoded changes, historical identity groups contain 231 conditional local-jet cases, 88 unresolved-relative-jet cases, 83 unequal-order alias cases, eight pole-extrapolation cases and two base-normal-substitution cases. Another 31 identities are outside the old 518-case ledger (including the separately recorded `third_derivative_outputs` fixture). **405 of the 443** have both the same canonical input hash and the same historical changed legacy/corrected bits. Seven others in historical groups have different inputs/bits; the remaining 31 lack that ledger's record. Case names alone do not transfer historical evidence.
## Disposition and remaining work
No committed golden or known-failure entry is changed by these measurements. An inherited mismatch, a conditionally supported local jet, an explained rounding mechanism or a reproduced extrapolation is not, by itself, a correct geometric result. In particular, the alias, substitution, pole and unresolved-jet groups are not blessed, and their historical labels are not silently converted into new exemptions.
The draft correctness hold remains. Before readiness, justify each deliberately moved expectation with current old/new values and an applicable independent oracle, or demonstrate an actual remaining defect and list that case against its issue in `known_failing.json` without a golden line. Unexplained differences must remain visible. The direct default-kernel regression establishes its stated closed-form case; it does not establish all 3,182 cases, downstream callers or requested-grid correctness. The temporary collector and all measurements are archived evidence, not a new production diagnostic interface; the collector is removed before this record is committed. These measurements describe the exact named base, not the substantially advanced main at `c7b8a343`.
@@ -0,0 +1,42 @@
# surface.offset_surface: default third-derivative diagnostic attribution (2026-11-04)
- **Unit / PR:** `surface.offset_surface`, #1914. The approved four-term correction is unconditional; this record does not propose another geometry change.
- **Measured revision:** `8ec4825280f7b2f9a41fc4183d609f8a080146e9`, on base `c4276a13c92ff696d40f331f8830fbb8cc5d269a`.
- **Command:** `CARGO_BUILD_JOBS=2 CARGO_TARGET_DIR=bin/review1914-target SOLIDCORE_CPP_DIR=<main-checkout>/bin/cpp-v101 nice -n 10 cargo +1.98.0 run -p difftest --features cpp -- --unit surface.offset_surface` (with `RUSTUP_TOOLCHAIN` and `RUSTC_WRAPPER` unset).
- **Observation:** 3,182 cases, 2,663 passed, 519 failed, zero deferred; maximum relative error `1.9972685729541615`. This is a failed native diagnostic, not a parity pass. A separate full `curve.crv_on_surf` run reached the shell's combined 1,200-second limit without a summary.
## One individually supported C++ defect
The existing `fixtures/surface.offset_surface/edge_cases.json#0`, `third_derivative_outputs`, is named in the confirmed original WR-160 and WR-161 records. Its base is a regular cubic B-spline patch; its seven steps request rectangular derivatives of total order at most three or equal-order `(3,3)` upper-half derivatives.
The ten reported mismatches map through the unchanged runner's output serializer:
| `values.out` indices | Zero-based step | Derivative / component | Cause |
| --- | --- | --- | --- |
| 19 | 0, `eval` | `D(1,2).z` | WR-160 and/or WR-161 |
| 50, 51 | 2, `eval` | `D(0,3).y,z` | WR-161 |
| 76, 77 | 4, `eval` | `D(0,3).y,z` | WR-161 |
| 86 | 4, `eval` | `D(1,2).z` | WR-160 and/or WR-161 |
| 114 | 5, `eval_simple` | `D(1,2).z` | WR-160 and/or WR-161 |
| 126, 127 | 6, `eval_simple` | `D(0,3).y,z` | WR-161 |
| 136 | 6, `eval_simple` | `D(1,2).z` | WR-160 and/or WR-161 |
For example, `out[19]` is C++ `0.8656646974185226` versus Rust `-0.21398042233584189`; `out[50]` is C++ `-2.316474981309934` versus Rust `6.683525018690066`. The four corrected expressions follow differentiation of `Bu × Bv` and `B + d*N`, and a separate default-kernel polynomial closed-form regression fails before the fix. This supports a case-specific `cpp_defect = "WR-161"` marker explaining both WR-160 and WR-161. The marker parks this case only; it does not count it as a pass or establish correctness of every unrelated output.
## Remaining failures stay visible
`upper_half_slot_overwrite` (`edge_cases.json#1`) is **not parked**. Its `out[26]` is step 1's unequal-order `(3,1)` upper-half request: the serialized `D(2,0).z` slot is overwritten by a `Duvv` write. C++ `0.42964767031822376` versus Rust `-0.055925937843527895` therefore is not evidence that the destination `Duu` is correct. The unequal-order slot issue remains outside this PR. Its other four mismatches do not justify parking the entire case.
The expanded pass gives every remaining case bundle-level causal evidence and measured values in [the per-case addendum](surface.offset_surface--default-third-derivatives-diagnostic-attribution--addendum-2026-11-04-per-case-four-term-attribution.md). Reverting only the four corrected terms in a temporary source copy makes all full outputs agree with C++ under the unchanged comparator; that is not individual-term isolation or proof of correctness by C++ agreement.
The 518 cases split into 282 with independent conditional local-jet support, 103 relative-jet disagreements, 116 unequal-order alias cases tracked separately in #2717, nine non-alias pole-extrapolation cases and eight non-alias fallback/substitution cases. After the records were published, the maintainer-authorized 282 supported cases are listed against the confirmed WR-160/161 addenda naming their values. Together with the preserved original fixture entry, there are 283 case-specific markers. The other **236 cases remain ordinary running failures**. No post-marker full native sweep is claimed. Further numerical measurements may explain a disagreement but do not automatically authorize a marker.
No tolerance, input, runner, guard, fixture or comparison is changed to remove failures. The unit remains selected by `--green` and main's sweep through a provisional `partial` scheduling entry; its measured native result is still **fail**, not a passing or partial report. The PR stays draft under the maintainer's requirement to resolve every unexplained case, with the alias cases waiting for #2717's fix. Rust's own canonical CI is a separate gate, not permission to bypass that hold.
The existing passing cases and failing inputs remain in the runner. Every changed component now maps to its actual operation and serialized derivative slot, including overwritten destinations. The stronger correctness checks remain conditional on supplied base derivatives at the selected surface/UV; they do not globally prove providers, wrappers or the outer clamping/extension map. No end-to-end curve-on-surface improvement is claimed.
## Reference and evidence bounds
All 492 SMLib/SM_API source blobs in the preserved reference copies were checked against pin `3fd5b9548d19aa8c12c29bc9637a96d42a06f8a5`. Shared `cpp-v101` library hashes matched preserved historical build receipts, but this is not a reproducible-build proof. Libraries and shared sources were not rebuilt or modified.
The native results above belong to `8ec4825`, not later integration heads. Local full report, logs and source-hash receipts were preserved before integration. Focused final-head checks and canonical CI must be reported separately; this record does not turn a timeout or a historical run into a current-head pass.
@@ -0,0 +1,97 @@
# surface.offset_surface: one enabled-extension explicit-side clamp (2026-11-08)
Continues #1914 with one independently supported complete row / three moved
components, `gen1332`. The original script keeps extension enabled, but its
explicit `SS_VMAX` flag clamps the only outside request before extension runs.
This is not evidence for an actual extended surface, a changed default flag,
or a constant continuation's derivatives. All original inputs and all three
script steps remain executing.
## Independent state and value evidence
The original direct B-spline has domain `[0,0]–[1,1]`, distance
`8.716126750113276`, `allow=true` and explicit side mask **11 = 1|2|8**. At step
0, `(hu,hv,upper)=(0,3,false)`, the requested UV
`[0.004833398684368828,1.9535512732399394]` is clamped to
`[0.004833398684368828,1.0]` by its original `SS_VMAX=8` flag. The later normal
query is in the original domain; the final state grid uses that domain too.
No edit occurs anywhere in the full script. `OffsetSurface::new` starts without
an extension; `extend_surface` wraps periodic directions, applies the explicit
side flags, then returns `None` when the resulting UV is in domain
(`surface/offset_surface.rs:430-436,3088-3113`).
The original input net independently establishes nonperiodicity, rather than
assuming it from a result flag. The first opposite-boundary position test of
`Surface::is_periodic` is evaluated at 80/160 digits, from original knots/weights
and control points, with the same binary64 `1/7` sample fraction. Its squared
separation exceeds the source's position threshold
`1e-12*(1+max(abs(Pmax)))` by **6.632468755324e12** in u and
**7.813412246639e12** in v. Relative precision drift of those separations is
`1.292e-79` / `1.421e-81`; both endpoint samples pass the independent regularity
checks. The private proof admits only ratios above `1e6`, a conservative scope
filter, not a production tolerance or new absolute floor. These are explicit
local numerical/state diagnostics, not a whole-domain interval certificate.
Source: `surface/surface/p1.rs:2937-2995`, `geom/tol.rs:869-873`, `math.rs:44`.
The independent Cox-de Boor/Taylor algebra differentiates
`S + d (Su x Sv)/|Su x Sv|` **at the clamped point**, converting original
binary64 inputs exactly and constructing no net from kernel derivatives. All
three moved components pass unchanged relative `1e-9`, without a floor; maximum
discrepancy `8.063531413806036e-14`, precision drift `1.8686238951724364e-77`.
The entire original input and every output bit/shape were checked against the
retained counterfactual. It selects moved indices only, never expected values.
| Raw index / component | Observed | Independent expected (rounded display) | Relative error |
|---|---|---|---|
| 11 / D(0,3).x | 67.24942617590006 | 67.24942617589463 | 8.064e-14 |
| 12 / D(0,3).y | -213.5282907546842 | -213.52829075468333 | 4.083e-15 |
| 13 / D(0,3).z | -200.89857095976015 | -200.89857095975854 | 8.035e-15 |
## Complete old/new encoding
The replacement is the full retained collector encoding. Common fields stay
`deferred=null`, `error=null`, `ints={}`, `topology=null`; `out.n` stays **72**.
Blocks are `[sum, abs_sum, weighted_sum]`, not error bounds. The full original
input hash uses sorted compact Python JSON, UTF-8.
| Case | Components / max relative error | Full original input SHA-256 | Old → new checksum blocks / unchanged n |
|---|---|---|---|
| `gen1332` | 3 / `8.06353e-14` | `cb46fb52544fb4c84e3a64deca2346d55fc1ad7f94adec553f4e41652db65660` | `[[68487.9127286635, 73586.6520814705, 1550175.2367883257]]` → `[[30395.004642320324, 31489.622915038668, 1034470.1990414166]]` / `72` |
## Controls, exclusions and provenance
All **85 numerical/scope controls pass**. Seven new controls exercise each side
and combined masks on an independent affine-plane closed form; reject missing
flags and unknown masks; check that plane's opposite-boundary squared distances
are exactly 5 and 10; reject a closed/unseparated or nonregular first sample;
reject a wrong jet and preserve the previous model's extension-disabled guard;
exclude a parameter edit; and bind the actual complete input/output before
deliberately corrupting a bit.
The numeric-only candidates `gen0590` and `gen0962` are **not approved**.
`gen0590` reaches a normal fallback in its first periodicity sample, outside this
state proof. `gen0962` swaps parameters, but `swap_uv_notifying` does not remap
the stored side mask (`offset_surface.rs:1886-1904`); a clamp-only model silently
remapping that mask is not justified even though three components agree. No
actual extension or unmodelled branch is excused by numeric agreement alone.
The **64-member archive** was read back and hash-verified, SHA-256
`c0277e8e83feb5100d1c40e5f947f3aa476e0073555c19acd9fcdf403086ec81`.
It contains executable models/controls, source snapshots, complete original
inputs/raw values/bits, old/new rows, full-precision values and nonperiodicity
diagnostics. Local path:
`~/.local/share/opencode/solidcore-cleanup-evidence/pr1914-singular-side-clamp-20261108-670557efa/`.
Pre-edit head: `670557efa12f074f96d7fc559a1d854f7f722aca`. The collector remains
at its actually measured `7a90407a0fe189ebceb551e5df28aaf4e8cc9893` revision,
raw SHA-256 `735d018cce5a61c0ffd3479cf6b2f780182779dcfba91d2f8bb89e20583bb958`.
Numerical source SHA-256 stays
`86565c6a5d30bf5e8efb6e3dcbe8b34b4ecb4683d60982a4e214adb525889bef`.
No new collector or full-suite execution is claimed.
Every other golden and all 88 known failures remain unchanged. Projected
accounting is **167 supported cases / 815 components**, **188 ordinary
differences**, all **3,182 cases = 3,094 goldens + 88 known failures**, pending
the actual gate. There is no new body/topology, validity, volume, global
regularity or actual-extension claim. Parent canonical run 42477082489 ended
`action_required`, zero jobs, not success; correctness/review holds remain.
@@ -0,0 +1,137 @@
# surface.offset_surface: one polynomial linear-end-span continuation (2026-11-08)
Continues #1914 with one supported complete row / nine moved components,
`gen1320`. No production construction, flag, input, tolerance, absolute floor,
decoder or case selection changes. In particular this does not implement
#2738's extension work or #2717's named-grid change. All three original steps
and all 56 original raw scalars remain selected; no suffix is cropped or skipped.
## State and construction proof
The original direct B-spline has degrees **p=3, q=1**, unit/NOW weights, distance
`0.0002950299289045415`, `allow=true`, and explicit singular-side mask **0**.
Step 0 is `max_anal`, not an edit. Step 1 evaluates `(hu,hv,upper)=(2,3,true)`
at **[4.811712701187294,0.4857657254451476]**. Its u is strictly inside the
original first cubic span `[2.2788605465371647,5.471921079381099]`; v is above
the original domain `[-1.539680032514508,0.0808781086230479]`. The terminal
linear v span starts at `-1.1286307215898375`. Step 2 is a bounding query over
the original domain, not an edit. The complete original script is decoded;
only moved jets, not the correctness of unchanged query outputs, are graded.
Both opposite boundary control hulls are separated by an exact-rational plane
derived from the original binary64 control points. The squared-distance lower
bounds are **3.8310369064621734e-6 / 1.9159016944257274e-6**, both above the
conservative source-threshold upper bound **1.003453397165149e-12**. The archive
retains the exact fractions, plane normals, projection gaps and norm squares.
Clamped polynomial boundaries lie inside their control hulls, so neither
direction can pass a positional closure test. This covers both the receiver's
`Surface::is_periodic` and NURB `is_closed_smooth` G0 checks, before tangent
checks could wrap parameters. Original-net 160-digit first-sample position
checks separately have separation/threshold ratios **4.210233608e6 / 2.872639340e6**,
with regular first samples. No periodic-result flag is used as an expected value.
Sources: `surface/surface/p1.rs:2937-2995`, `nurbs/srf_nurb.rs:1644-1743`.
`select_surface` extends the original receiver for this outside request.
The mask has no clamp bit. `extend_surface` calls the unbounded evaluator with
**G1R**; its extension chunks are at most 0.9 of the current domain length
(`surface/offset_surface.rs:1294-1350,3067-3162`,
`nurbs/srf_adv/p1.rs:240-281,333-375`). This is an actual extension, unlike the
earlier enabled-but-unused or explicit-side-clamp dispositions.
For fixed u, write the original terminal span `[a,b]` as
```text
S(u,v) = A(u) + (v-b) B(u)
B(u) = (P_last(u)-P_prev(u))/(b-a).
```
The inspected G1R formula, specialized to extension-direction degree one,
creates `Q_last=P_last+(c-b)*(P_last-P_prev)/(b-a)`. There are no intermediate
degree-elevation rows and every weight stays one. Thus the new segment is
**the same affine polynomial**, with the same parameter derivative B(u), not
merely an unspecified G1 continuation. Repeating the construction at any farther
endpoint preserves that polynomial. Its join is exactly C1 in real arithmetic,
so removal of the old boundary knot preserves the same function; retaining the
knot does too. Sources: `nurbs/srf_adv/p3.rs:533-607`,
`nurbs/srf_tool/p2.rs:96-215`. This proof does not generalize to rational nets
or a curved end span in an extended direction.
The oracle continues the **original terminal-span polynomial**, not a
kernel-generated extended net and not a replay of source-order floating-point
arithmetic. Original inputs are converted exactly to Decimal; independent
80/160-digit Cox-de Boor/Taylor algebra differentiates
`S + d (Su x Sv)/|Su x Sv|`. All nine moved components pass unchanged relative
`1e-9`, without a floor; maximum discrepancy **9.324089962188992e-14**, precision
drift **6.182732331065606e-78**. Regularity/normal-substitution guards remain.
No whole-domain regularity or floating-point interval error certificate follows.
## Complete old/new row and observations
The new row equals the complete retained collector encoding. Common fields
stay `deferred=null`, `error=null`, `ints={}`, `topology=null`; `out.n` stays
**56**. Blocks are `[sum, abs_sum, weighted_sum]` checksums, not error bounds.
The hash covers the complete original input, sorted compact Python JSON, UTF-8.
| Case | Components / max relative error | Full original input SHA-256 | Old → new checksum blocks / unchanged n |
|---|---|---|---|
| `gen1320` | 9 / `9.32409e-14` | `01537720249ce9b50614cc1147ba7646e678602cb601657b2468bd837ce52399` | `[[8.083516148205456, 338.29768636282773, 410.2475809158631]]` → `[[8.083506601475959, 338.297647168599, 410.2473283613418]]` / `56` |
All moved observations (display rounded; decisions use archived full precision):
| Raw index / named partial / axis | Observed | Independent expected | Relative error |
|---|---|---|---|
| 16 / D(0,3) / x | -4.0165406990270497e-7 | -4.0165406990270577e-7 | 1.958e-15 |
| 17 / D(0,3) / y | -4.185013264215656e-6 | -4.1850132642156576e-6 | 4.667e-16 |
| 18 / D(0,3) / z | 2.811709755875541e-6 | 2.811709755875539e-6 | 7.824e-16 |
| 25 / D(1,2) / x | -1.1580306332549033e-7 | -1.1580306332549017e-7 | 1.412e-15 |
| 26 / D(1,2) / y | -4.9149666324015915e-6 | -4.914966632401594e-6 | 4.588e-16 |
| 27 / D(1,2) / z | -4.336982137589329e-6 | -4.336982137589327e-6 | 5.264e-16 |
| 31 / D(2,1) / x | -1.8565629605747271e-6 | -1.8565629605749001e-6 | 9.324e-14 |
| 32 / D(2,1) / y | -1.0011266070069925e-5 | -1.0011266070069917e-5 | 7.733e-16 |
| 33 / D(2,1) / z | 1.29596701263065e-5 | 1.2959670126306509e-5 | 6.323e-16 |
## Controls, exclusions and provenance
All **92 numerical/scope controls pass**, including rerunning all earlier controls
after adding explicit opt-in basis/jet evaluator keywords to the temporary
shared helper. Its defaults still reject outside-domain inputs. Seven new
controls cover affine-plane continuation in every direction; independent
nonzero saddle third partials in u/v; rejection of curved/rational extensions,
overlapping/closed hulls and base edits; complete actual-record input/bit
preservation; rejection of wrong jets, corrupted bits and moved query fields.
Only `gen1320` is accepted by the bounded scan; all other exclusions remain
recorded. No unrelated numerical disagreement or extension case is blessed.
The saddle controls use `S=(u,v,uv)`, `d=9/8`, and direct differentiation of
`(-v,-u,1)/sqrt(1+u²+v²)`. At `(1/4,2)` its offset point is `(-3/4,15/8,1)`;
`D(0,3)=(-877608,133056,-532224)/4782969`. The swapped control exchanges x/y
and the differentiation direction. Exact Fraction arithmetic independently
verified these identities. Three initial controls failed on exact equality of
Decimal point components rounded at the 160th digit; they now use the existing
120-digit closed-form comparison. Their exact expected expressions, third
partials, captured-value `1e-9` rule and all scope guards are unchanged. The
initial failure log and separate derivation are preserved, not concealed.
The **76-member executable/raw/source/control archive** was read back and
hash-verified, SHA-256
`1a6491aeb5fc3d00ea479f11d14870038ba28ae31c7537c59d8f8ab8cad00bd2`.
It retains all full original inputs/raw values/bits, exact-rational hull bounds,
old/new rows, full-precision observations, controls, previous strict helper,
derivation, exclusions and source snapshots. Local path:
`~/.local/share/opencode/solidcore-cleanup-evidence/pr1914-linear-span-extension-20261108-ceadc86fe/`.
Pre-edit head: `ceadc86fedb8d337812b4882175f4fbb0fd0b79c`, on main
`3ef79991375bfb6f5cdde7c80584d76589808498`. The collector retains its actually
measured `7a90407a0fe189ebceb551e5df28aaf4e8cc9893` revision and raw SHA-256
`735d018cce5a61c0ffd3479cf6b2f780182779dcfba91d2f8bb89e20583bb958`.
Numerical source SHA-256 remains
`86565c6a5d30bf5e8efb6e3dcbe8b34b4ecb4683d60982a4e214adb525889bef`.
No fresh collector execution is claimed.
Every other golden and all 88 known failures remain unchanged. Projected
accounting is **168 supported cases / 824 components**, **187 ordinary
differences**, all **3,182 cases = 3,094 goldens + 88 known failures**, pending
the actual gate. This derivative-only disposition makes no new B-rep, topology,
validity, volume or body-construction claim. Parent canonical run 42478935902
ended `action_required`, zero jobs, not success. Correctness, review and CI
holds remain; no approval request, rerun or readiness is implied.
@@ -0,0 +1,114 @@
# surface.offset_surface: one outward trim that edits no net (2026-11-08)
Continues #1914 with one supported complete row / six moved components,
`gen1851`. Its outward trim is not an actual net trim: with extension disabled,
the inspected branch leaves both receiver geometry and parameter domain alone.
No production construction, flag, input, tolerance, floor, decoder, crop or
skip changes. All six original steps and all 147 raw scalars still execute.
## State proof before the changed evaluation
The receiver owns its original direct B-spline, has domain `[0,0]–[1,1]`,
degrees p=1/q=3, distance `0.37661542454724795`, explicit mask 9 and extension
disabled throughout. Steps 0–2 are state, a derivative request and a point
query, not base edits. No earlier operation can create an extended surface.
Step 3 asks to trim to
`[-0.10841096368374764,0,1.4533635181537692,1.141637526818134]`, whose minimum
and maximum corners extend beyond the original domain. In
`OffsetSurface::trim_with_domain` (`surface/offset_surface.rs:1969-1990`),
either outside corner sets **gets_bigger=true** after evaluating that corner.
With `allow=false`, `select_surface` clamps those evaluations and creates no
extension (`:1304-1348`). Consequently the `if let Some(extended)` trim has
nothing to edit, and `owns_surface && !gets_bigger` is false: **the original
base is not trimmed**. The successful status and returned four domain scalars
are retained; their binary64 bits equal the original request exactly.
Thus step 4's changed `eval_simple(hu=2,hv=3,upper=true)` at
`[0.5,0.45456415197103317]` still uses the **original net and domain**. It is
strictly inside the original u span `(0.13597465269160103,1)` and v span
`(0,0.45930959990169207)`, away from a knot-side ambiguity. Step 5 is state.
No post-trim reconstructed net is used as an independent expected input.
The evidence model validates the complete original input identity, output
shape and every value/bit pair against the retained four-term counterfactual.
It audits every operation, excludes enabled extension, nonowning or nested
receivers, actual inward trims, failed trims and other base edits. Only after
that state proof does its **private decoder** view trim's known status/four-
scalar payload as the existing `max_anal` query shape. This neither changes
the production script nor relaxes the default evidence decoder, which still
refuses `trim`. Every moved field must be an independently graded jet, not a
status, returned domain or other query result. The complete script is decoded;
unchanged fields are not asserted independently correct.
## Independent values and exact complete row
Original binary64 control points, weights, knots and distance are converted
exactly. Independent 80/160-digit Cox-de Boor/Taylor algebra differentiates
`S + d (Su x Sv)/|Su x Sv|` from that net. All six moved components pass
unchanged relative `1e-9`, without a floor. Maximum relative discrepancy is
**9.048670857263963e-13**; precision drift **1.3065385952206204e-76**. The
regularity/normal-substitution guards are unchanged. This is a local numerical
and state proof, not a whole-domain interval error/regularity certificate.
The replacement equals the complete retained collector encoding. Common
fields stay `deferred=null`, `error=null`, `ints={}`, `topology=null`; `out.n`
stays **147**. Blocks are `[sum, abs_sum, weighted_sum]`, not error bounds.
Input hashes use sorted compact Python JSON, UTF-8, of the full original input.
| Case | Components / max relative error | Full original input SHA-256 | Old → new checksum blocks / unchanged n |
|---|---|---|---|
| `gen1851` | 6 / `9.04867e-13` | `71955d6e58899aa90a8f3e07a5fd12adce0d1f9b008a5af7cf74c613054d7532` | `[[61829.67557510773, 61888.01368940549, 3859448.1427769545]]` → `[[61831.18435404368, 61889.99122955711, 3859566.2962446106]]` / `147` |
All moved observations, at step 4 (rounded display; full precision archived):
| Raw index / named partial / axis | Observed | Independent expected | Relative error |
|---|---|---|---|
| 75 / D(0,3) / x | -0.2008756440505442 | -0.20087564405050865 | 1.770e-13 |
| 76 / D(0,3) / y | -0.03506846111704871 | -0.03506846111704853 | 5.293e-15 |
| 77 / D(0,3) / z | 1.742602619174874 | 1.7426026191748802 | 3.547e-15 |
| 84 / D(1,2) / x | -0.0007919694071997914 | -0.000791969407200508 | 9.049e-13 |
| 85 / D(1,2) / y | 0.004952324689906306 | 0.004952324689906027 | 5.621e-14 |
| 86 / D(1,2) / z | 0.0016653571816100078 | 0.0016653571816091944 | 4.884e-13 |
## Controls, exclusions and provenance
All **98 numerical/scope controls pass**. Six new controls check an independent
affine-plane closed form through the no-op; reject inward trims, nonowning
receivers, extension, other edits, failed trims and changed returned rectangles;
reject wrong jets and tampered bits; and bind the actual complete record while
showing the previous default decoder still refuses trim. `gen2214` independently
disagrees and is **not blessed**. Actual net trimming and other exclusions stay
visible; no unsupported operation is inferred from its request shape alone.
The **71-member executable/raw/source/control archive** was read back and
hash-verified, SHA-256
`677d75b737faa780761f80f302738623bc479d7347f01aa746219927c6128113`.
It retains the complete original inputs/raw values/bits, old/new rows,
full-precision observations/disagreements, decoder/state proof and source
snapshots. Local path:
`~/.local/share/opencode/solidcore-cleanup-evidence/pr1914-outward-trim-noop-20261108-5846b6075/`.
Pre-edit head: `5846b6075166185d668d64a63471a17575afe272`, refreshed onto main
`e78687eb5ef9f7751f591c1964cfc0d4005334b5`. Both published `ceadc86fe` and
pre-refresh local `63ab11e08` were preserved locally and on the fork at
`refs/archive/20261108-pr1914-before-e78687eb5/{published,local}`. All 23 PR-owned
file bytes were preserved by that refresh. At the pre-edit head the actual
unit gate measured 187 ordinary differences, all 3,182 cases retained, and
fmt, workspace/all-target clippy, wasm, panic inventory and 23 offset tests passed.
The collector remains attributed to actually measured head
`7a90407a0fe189ebceb551e5df28aaf4e8cc9893`, raw SHA-256
`735d018cce5a61c0ffd3479cf6b2f780182779dcfba91d2f8bb89e20583bb958`.
Numerical source SHA-256 remains
`86565c6a5d30bf5e8efb6e3dcbe8b34b4ecb4683d60982a4e214adb525889bef`.
New main includes shared surface/revolution changes: the fresh gate is a new
execution, not a relabelling of that collector or a claim of fresh raw-stream
bit identity across main's changes.
Every other golden and all 88 known failures remain unchanged. Projected
accounting is **169 supported cases / 830 components**, **186 ordinary
differences**, all **3,182 cases = 3,094 goldens + 88 known failures**, pending
the actual gate. No B-rep, topology, validity, volume or actual trimming result
is certified here. Correctness, historical attribution-review and canonical-CI
holds remain; no approval request, rerun or readiness is implied.
@@ -0,0 +1,97 @@
# Offset derivatives in five parameter-edit scripts (2026-11-08)
Continues #1914 with five independently supported replacements / 24 moved
components. Production formulas, input scripts, tolerances, floors, the failure
registry and #2717's named-grid contract are unchanged. `gen0304` and `gen0672`
independently disagree and are not blessed.
## Independent state and value proof
For a clamped direct B-spline, reversing one parameter reflects its knots by
`lo + hi - t` and reverses that direction's control rows. Swapping u/v transposes
the net, knots and degrees. Both reverse the base normal. The inspected receiver
API (`surface/offset_surface.rs`) leaves the offset distance unchanged on reverse,
but negates it on swap. This is explicitly modelled from the original input net,
not from an edited kernel net. Extension is disabled throughout; periodic or
unclamped knots, other edits, failed parameter edits, ambiguous interior-knot
sides, actual aliases and unsupported derivative orders remain excluded.
At each changed evaluation, the current mathematical input net and scalar
distance are constructed separately at 80/160 decimal digits. The independent
Taylor algebra differentiates `S + d (Su x Sv) / |Su x Sv|` through total order
three, applying explicit clamping from the current knots first. Every moved raw
index must decode as a receiver derivative with its correct final named writer;
unchanged statuses and returned/query payloads are decoded, never blessed as
derivatives. Original binary64 inputs are converted exactly. The four-term
counterfactual selects changed indices only and supplies no expected value.
All 24 components satisfy the unchanged `1e-9` relative rule; maximum error
`1.999548313015847e-12`, maximum relative precision drift
`1.1300118342727895e-76`. No new absolute floor is used. The scope is explicit:
- `gen0686`, `gen0803`: changed jets occur **before** their later swap. Decoding
the unchanged suffix permits the complete row, but does not pretend these
changed jets exercise post-swap derivatives.
- `gen2531`: the changed jet precedes the final reverse, with the same limitation.
- `gen0909`: the changed jet follows swap; transposition and the negated distance
are both required.
- `gen2960`: the changed jet follows reverse in v; the reflected knots/net and
unchanged distance are both required.
## Exact replacement encodings
Each new row equals the complete retained actual collector encoding. Common
fields remain `deferred=null`, `error=null`, `ints={}`, `topology=null`; `out.n`
stays 204, 108, 147, 87 and 86 respectively. Only the blocks below change.
They are `[sum, abs_sum, weighted_sum]`, not error bounds; errors grade all raw
moved components. Input hashes use sorted compact Python JSON, UTF-8.
| Case | Components / max relative error | Input SHA-256 | Old → new checksum blocks |
|---|---|---|---|
| `gen0686` | 6 / `1.99955e-12` | `9d08376d9c36e5392c5d09ca19e7a42d951006834726e090c52d2cd7fdb10dd9` | `[[121930.35080477943, 122286.7144167371, 8701121.039546246]]` → `[[121962.3389298341, 122224.82699030975, 8705193.75695359]]` |
| `gen0803` | 9 / `2.23887e-15` | `1c9b9b7c8465da58ee4de50b4a92ba6086af384f7d7967df546742c35243d4a8` | `[[30433.220442247508, 30463.821946298885, 503538.46555445157]]` → `[[30433.06458783185, 30463.6612749778, 503524.44087460113]]` |
| `gen0909` | 3 / `5.29685e-13` | `4bb845ec023ff9aa5ed7af2f2175f1dc52125b80adbb1a3f9a708a8c9fb7c57a` | `[[76256.28041470288, 76301.39173228155, 4336610.869009565]]` → `[[76255.8695864608, 76301.01981243513, 4336553.392578878]]` |
| `gen2531` | 3 / `1.30999e-14` | `be2221978e98e31d856b00abc7753267057b708f92496c105d0271c8ae329689` | `[[45825.10682569999, 45897.16292421347, 1451228.6467945287]]` → `[[45826.31522262935, 45897.31002906505, 1451250.566334015]]` |
| `gen2960` | 3 / `4.3237e-14` | `0cad4c75b7b482c04b0a69061ef20d3065743f94ab5eef5696ea3b4903b70865` | `[[30413.486952040126, 30468.854227191732, 1445253.6014927593]]` → `[[30413.479977829935, 30468.838392777052, 1445253.4163972281]]` |
All five original inputs and every raw binary64 output bit were checked against
the retained streams before editing. Every other row and all 86 known failures
stay byte-identical. All 3,182 cases remain selected as 3,096 golden rows plus
86 known failures.
## Controls and retained evidence
All 59 numerical/scope controls pass. The seven new controls cover an asymmetric
plane's closed-form values and first partials through swap/double swap, each
reverse and compositions; nonuniform interior-knot reflection on a piecewise
linear plane; wrong-value/changed-status rejection; failed edits and allowed
extension rejection; the previous copy decoder staying strict by default; and
the actual retained `gen0686` with unchanged input followed by a deliberately
wrong component. The affine closed-form controls compute the parameter map and
constant cross product, not a transformed control net or Taylor jet.
The earlier decoder gains an explicitly opt-in parameter-edit trace only; its
default still rejects swap/reverse, so previously archived proofs do not silently
acquire unsupported geometry mutations. No production affordance is introduced.
No B-rep, validity, volume or global regularity claim follows from these jets.
The raw collector was actually measured at
`7a90407a0fe189ebceb551e5df28aaf4e8cc9893`, raw-stream SHA-256
`735d018cce5a61c0ffd3479cf6b2f780182779dcfba91d2f8bb89e20583bb958`.
At pre-edit head `ece73364cc38f4aa9230978e62af78132b0c846a`, numerical source
SHA-256 remains
`86565c6a5d30bf5e8efb6e3dcbe8b34b4ecb4683d60982a4e214adb525889bef`.
These measurements are not relabelled as a newer collector run.
The 40-member executable/raw/control archive was read back and hash-verified,
SHA-256 `9887e283e19139ec82596e30a378753dc2c6b55fb6930dce9157d2243b5bab2d`.
It retains complete original inputs/raw values/bits, full-precision observations
and disagreements, all controls, exact old/new encodings and the previous
strict helper source. Local path:
`~/.local/share/opencode/solidcore-cleanup-evidence/pr1914-parameter-edits-input-oracle-20261108-ece73364c/`.
Projected accounting is 157 supported replacements / 771 moved components and
200 remaining ordinary differences, pending the actual gate. Parent canonical
run 42470822199 stopped at `action_required` with zero jobs, not success. The
correctness and attribution-review holds remain; no workflow approval, rerun,
review resolution or readiness is implied.
@@ -0,0 +1,429 @@
# surface.offset_surface: published migration evidence before the 78d1eb12d refresh (2026-11-08)
This record preserves **verbatim** the complete body published for #1914 at
`ceadc86fedb8d337812b4882175f4fbb0fd0b79c`, including its per-case tables,
old/new values, input identities, proof boundaries, archive hashes and measured
revisions. SHA-256 of the exact body below (UTF-8, before this wrapper):
`5c776c9f037551acaab9abc3df3c033e0f57046dd41366bd330aa130362f1e41`.
The published body was read back and checked before this archival copy was made.
Its historical heads, counts and pending-state statements are retained, not
updated to describe this record's commit or a later execution. This is an evidence
archive, **not a current readiness or CI claim**. The current PR description names
the latest measured head and links the subsequent complete `gen1320`/`gen1851`
proofs separately. No numerical code, expectation, input or case selection is
changed by copying the text.
## Verbatim published body
Units: `surface.offset_surface`, WR-160/WR-161. **Draft: 188 ordinary golden differences remain unresolved.**
This continues [the goldens migration instruction](https://github.com/tangency-labs/solidcore/pull/1914#issuecomment-6684465108), not the retired C++ gate. Head `ceadc86fedb8d337812b4882175f4fbb0fd0b79c`, linearly based on main `3ef79991375bfb6f5cdde7c80584d76589808498`. Both published and local `8e07893cff99db33d90e3ed10d6551a87587f032` are preserved locally and on the fork at `refs/archive/20261108-pr1914-before-3ef799913/{published,local}`; every one of the 17 PR-owned file bytes was preserved during refresh. Incoming ops/profile edits are disjoint. Earlier preservation refs and measured evidence remain intact. Earlier data-only commits replaced seven supported rows and move two proven wrong rows to #2717 failures, without implementation changes.
## Approved numerical scope, unchanged
The production correction still changes exactly four terms, unconditionally:
1. `Cuuv`: coefficient `+1`, not `3`, for `Buuv × Buv`.
2. `Cuvv`: coefficient `-1`, not `3`, for `Buvv × Buv`.
3. `Duvv` adds `Buvv`, not `Buuv`.
4. `Dvvv` adds `Bvvv`, not `Buuv`.
The default-kernel closed-form regression is retained, as are the unchanged-partial controls, WR-164 and extension tests. Numerical file SHA-256 is `86565c6a5d30bf5e8efb6e3dcbe8b34b4ecb4683d60982a4e214adb525889bef`, unchanged throughout the migration. No new compatibility flag, tolerance, floor, fixture, generator, input guard or harness rule is introduced. Retired `known_mismatches` entries are not restored.
The #2717 requested-grid implementation remains separate. Its closed handoff #2970 and the later refusal-versus-mask design question are not silently absorbed here. Recording a demonstrated named-slot failure does not choose that design.
## Current bounded dispositions
- **167 supported golden replacements / 815 moved components**: the original 45 (199 components), 13 pass-through-wrapper cases (54), 26 non-aliasing-grid scripts (162), four nested-zero-identity cases (17), eight locally regular nested cases (36), twenty copy/setter scripts (89), eighteen clamped-boundary scripts (102), thirteen canonical-revolution scripts (62), five returned-base/inversion-query scripts (26), five parameter-edit scripts (24), seven complete/prefix-supported scripts (29), two enabled-but-unused extension prefixes (12), and one explicit-side-clamp script (3), independently checked from original inputs.
- **88 demonstrated wrong cases** are individually listed against #2717, without wrong golden lines: the original 79 exact-input/exact-bit attributions plus six additional direct-input proofs below, the canonical-revolution prefix `gen1603`, and the two query-prefix proofs `gen0757`/`gen2243`. These cases continue to execute; harness failures and panics are not waived.
- **All 3,182 cases remain selected**: 3,094 golden rows and 88 known failures, with disjoint identities. Every unrelated expectation and every previously listed failure is unchanged.
- **188 ordinary changed cases remain red**. This update replaces only the independently supported complete `gen1332` row; every other expected row and all 88 known-failure entries are unchanged. No numerical source, fixture, runner, tolerance, floor or requested-grid contract changes.
## Why the original 45 moved results are supported
The independent probe starts from the input homogeneous B-spline net, not derivatives supplied by the kernel. It evaluates Cox–de Boor basis polynomials as Taylor series, divides the homogeneous series, differentiates the base series, and forms `O = B + d (Bu × Bv) / |Bu × Bv|` through order three. The inverse square root is expanded by its binomial series. Input binary64 numbers are converted exactly with `Decimal.from_float`.
The calculation is repeated at 80 and 160 decimal digits. Each of the 199 moved components agrees with the independent result under the unchanged `1e-9` relative rule, without an absolute floor; precision agreement at `1e-50` is an additional numerical stability check, not a production tolerance. Accepted evaluations use original-domain parameters, regular tangents and the original base, not clamping, extension, pole extrapolation, substituted normals or aliased slots. A separate audit found no successful unchanged aliased request in these 45 scripts.
Five controls pass: basis partition/derivative sums, the API's interior-knot side convention, a parabolic graph's closed-form offset derivatives, a rational plane's fractional-linear parametrization, and rejection of a degenerate normal. These are numerical checks at the requested parameters, not a whole-domain approximation certificate or proof of unrelated unchanged operations. The moved outputs are third derivatives, not newly built B-reps; there is no changed topology or volume result being accepted here.
The definition follows [Shape Interrogation §11.3.1](https://web.mit.edu/hyperbook/Patrikalakis-Maekawa-Cho/node224.html) (`B + dN`) and [§3.1](https://web.mit.edu/hyperbook/Patrikalakis-Maekawa-Cho/node27.html) (the normal from parametric tangents). The probe uses independent Taylor-series arithmetic rather than the production third-order recurrence.
<details>
<summary>Each deliberately changed golden: old/new stored values and independent relative error</summary>
`blocks` are the existing golden encoding's `[sum, abs_sum, weighted_sum]`; `n` is unchanged. The error column grades the raw moved components, not those checksum blocks.
| Case | Old stored block(s) | New stored block(s) | Largest independent relative error |
|---|---|---|---|
| `api_offset_m12_state_evals` | `{"blocks":[[18555.43255227718,93499.06290384065,-843552.9123418084]],"n":247}` | `{"blocks":[[19461.556148815078,93729.6399627025,-657550.8157014829]],"n":247}` | `7.6827e-13` |
| `gen0000` | `{"blocks":[[15.578470146825442,66.19398803014818,149.0970835084266]],"n":31}` | `{"blocks":[[15.934947456660122,65.44373059469201,157.64058882512336]],"n":31}` | `2.4657e-15` |
| `gen0007` | `{"blocks":[[-66837181420.41156,135130570084.05176,-5960704060979.212]],"n":152}` | `{"blocks":[[-66859213497.91429,135177776516.49692,-5962348872759.839]],"n":152}` | `5.9725e-14` |
| `gen0068` | `{"blocks":[[15.319010631468199,23.388114014721587,351.8112104461945]],"n":38}` | `{"blocks":[[15.355483099501537,23.32098921480353,352.8991097478107]],"n":38}` | `9.1962e-15` |
| `gen0196` | `{"blocks":[[12.565184277392516,20.946060283902344,154.70633404669488]],"n":25}` | `{"blocks":[[12.576610099938545,20.823068612513566,154.88348912442416]],"n":25}` | `5.6728e-15` |
| `gen0203` | `{"blocks":[[61738.3549758855,61958.941867929476,4525927.325586328]],"n":168}` | `{"blocks":[[61723.3828120861,61945.84157921354,4524769.84162097]],"n":168}` | `1.4921e-13` |
| `gen0241` | `{"blocks":[[30402.471835876284,30530.224793782254,502734.7743859657]],"n":127}` | `{"blocks":[[30402.18860733752,30530.466737296207,502701.62180807826]],"n":127}` | `4.0998e-13` |
| `gen0255` | `{"blocks":[[30387.87660331008,30487.36593020654,501929.7715273392]],"n":93}` | `{"blocks":[[30387.892616568915,30487.379012093024,501931.26253273303]],"n":93}` | `2.1702e-14` |
| `gen0430` | `{"blocks":[[-27436.54375901606,167436.2705040306,-3197648.2647903794]],"n":128}` | `{"blocks":[[-27218.29986474127,167654.5143983054,-3181901.7985980776]],"n":128}` | `2.5459e-15` |
| `gen0453` | `{"blocks":[[30412.39559535699,30449.645002398775,1080775.5492491084]],"n":74}` | `{"blocks":[[30412.369114628094,30449.685228169474,1080775.0746664007]],"n":74}` | `6.8215e-14` |
| `gen0458` | `{"blocks":[[-224.78955409790183,1563.1038922851922,-2999.309792598596]],"n":32}` | `{"blocks":[[-138.86128799414814,1604.836296732452,-1000.5016409527848]],"n":32}` | `9.2360e-15` |
| `gen0506` | `{"blocks":[[31427.5453740134,31486.672659007047,562961.3295158537]],"n":77}` | `{"blocks":[[31427.527719028058,31486.6359684364,562959.9732961301]],"n":77}` | `1.2421e-12` |
| `gen0587` | `{"blocks":[[-19521938014.22505,98857485394.04991,870182291661.0085]],"n":72}` | `{"blocks":[[-7555521493.592014,86891068873.41685,1031988872414.2708]],"n":72}` | `4.4463e-15` |
| `gen0659` | `{"blocks":[[62883.466662419545,63105.28156632557,3921651.0161867053]],"n":147}` | `{"blocks":[[62871.85752263127,63101.502957452874,3920579.0618740157]],"n":147}` | `3.2199e-15` |
| `gen0660` | `{"blocks":[[35271.972121450366,36061.61966549416,827725.0473255506]],"n":68}` | `{"blocks":[[40718.075740712775,41507.72328475657,1201562.0899414327]],"n":68}` | `2.4452e-13` |
| `gen0716` | `{"blocks":[[990.8128971350529,1017.7459271366557,52788.08308444568]],"n":53}` | `{"blocks":[[990.8113538623086,1017.4578477405812,52788.04512916689]],"n":53}` | `2.3141e-13` |
| `gen0741` | `{"blocks":[[-816281.9636894614,4894071.395232069,-73501434.61234763]],"n":96}` | `{"blocks":[[-1004897.0756162175,5095644.327690265,-87266893.29733452]],"n":96}` | `1.7766e-15` |
| `gen0745` | `{"blocks":[[76913.34859873245,77048.86242362625,6728234.54079606]],"n":174}` | `{"blocks":[[76912.39803074404,77048.71396391184,6728127.085842954]],"n":174}` | `3.5550e-15` |
| `gen0794` | `{"blocks":[[61913.290765653765,61952.418624409256,3731820.215717172]],"n":142}` | `{"blocks":[[61913.507091023246,61951.88874275767,3731835.342500676]],"n":142}` | `4.3821e-15` |
| `gen0951` | `{"blocks":[[30390.801227006006,30473.045662677512,501425.9333438466]],"n":72}` | `{"blocks":[[30389.696414887367,30471.823367723846,501352.73130386946]],"n":72}` | `2.9624e-14` |
| `gen0959` | `{"blocks":[[30387.499252799174,30491.494320710906,501817.54335713683]],"n":94}` | `{"blocks":[[30387.61201196988,30491.694589446834,501825.6425615884]],"n":94}` | `8.9063e-16` |
| `gen0974` | `{"blocks":[[30407.00600431937,30461.501816059466,2205598.372543032]],"n":111}` | `{"blocks":[[30409.68831855572,30455.699700325687,2205638.436354326]],"n":111}` | `6.9307e-15` |
| `gen0985` | `{"blocks":[[-42.88321000418377,182.95455225825478,-1588.8293711760505]],"n":57}` | `{"blocks":[[-42.936953620743395,181.87538135998145,-1702.8033865412876]],"n":57}` | `8.6160e-15` |
| `gen1080` | `{"blocks":[[-18.454362512987302,5184.662452726535,687.3743878188707]],"n":27}` | `{"blocks":[[-18.45932901752286,5184.658938565483,687.3046015064483]],"n":27}` | `8.3005e-15` |
| `gen1188` | `{"blocks":[[881.5993752030242,1166.245851897853,-437.41215602270063]],"n":21}` | `{"blocks":[[877.2882770184451,1170.556950082432,-517.8514701984736]],"n":21}` | `5.9405e-15` |
| `gen1312` | `{"blocks":[[10.551665165939022,20.707273125398622,281.8292866098144]],"n":57}` | `{"blocks":[[11.372277661270065,20.54382823730145,302.4067750275329]],"n":57}` | `5.3235e-14` |
| `gen1416` | `{"blocks":[[78186.23114002944,78277.09957161486,4666439.935435823]],"n":131}` | `{"blocks":[[78186.02901103486,78278.70326175417,4666428.1500635985]],"n":131}` | `6.6129e-15` |
| `gen1423` | `{"blocks":[[106602.2990378796,106761.4768768358,8817730.82046103]],"n":183}` | `{"blocks":[[106602.78161245614,106761.7782564493,8817766.083273219]],"n":183}` | `1.2042e-14` |
| `gen1425` | `{"blocks":[[45390.45442824365,45460.2762228435,1968263.0034797394]],"n":83}` | `{"blocks":[[45390.903056125324,45459.827594961826,1968273.4955305809]],"n":83}` | `4.1320e-15` |
| `gen1540` | `{"blocks":[[30409.747976543957,30457.8435500296,502957.1232589204]],"n":84}` | `{"blocks":[[30407.19873457563,30454.111781707572,502766.6501428983]],"n":84}` | `3.0296e-14` |
| `gen1846` | `{"blocks":[[37874.79106367064,207276.11661343987,2316642.6551924506]],"n":141}` | `{"blocks":[[44235.750161099335,198222.83573974654,2431494.133546644]],"n":141}` | `9.2354e-14` |
| `gen1977` | `{"blocks":[[-2700462544.6541142,7650063175.587434,-278518087968.6768]],"n":106}` | `{"blocks":[[-2700462537.8681984,7650063125.205684,-278518087801.72485]],"n":106}` | `4.6555e-15` |
| `gen1979` | `{"blocks":[[45325.117151139006,45552.87716336386,2056746.2924211316]],"n":85}` | `{"blocks":[[45325.68512792134,45552.36068518827,2056753.967175954]],"n":85}` | `3.8490e-14` |
| `gen1998` | `{"blocks":[[10.401723128094405,26.01682301344319,10.440498386317746]],"n":52}` | `{"blocks":[[10.402186832562927,26.017778473254932,10.45411085670047]],"n":52}` | `1.7111e-13` |
| `gen2053` | `{"blocks":[[30466.356560189328,30474.530022372986,1265413.215443816]],"n":80}` | `{"blocks":[[30466.758255769062,30476.0661078709,1265420.614011899]],"n":80}` | `2.2881e-14` |
| `gen2324` | `{"blocks":[[60941.0770320113,61032.02632995147,3628110.931002712]],"n":141}` | `{"blocks":[[60941.08232995051,61032.04490793993,3628111.295936332]],"n":141}` | `9.3548e-14` |
| `gen2456` | `{"blocks":[[-43089878.01306949,272907235.8543918,-2929882439.745673]],"n":83}` | `{"blocks":[[-43044050.63786446,272735952.65986407,-2926549280.2746844]],"n":83}` | `2.2169e-14` |
| `gen2559` | `{"blocks":[[30419.616265478202,30468.86518848086,503458.000436155]],"n":72}` | `{"blocks":[[30419.17866536324,30468.068270721495,503427.94034354197]],"n":72}` | `6.4831e-15` |
| `gen2601` | `{"blocks":[[-16.876927756008865,22.344934551546142,-315.8855434005137]],"n":27}` | `{"blocks":[[-150.71510034840648,156.18190139886246,-3821.2927119357746]],"n":27}` | `6.5487e-15` |
| `gen2689` | `{"blocks":[[30452.303990406777,30478.42259376221,504989.6296579127]],"n":81}` | `{"blocks":[[30451.45941941629,30479.065646945714,504921.7154439036]],"n":81}` | `1.7721e-14` |
| `gen2761` | `{"blocks":[[34813.03608906995,62397.60277708933,-154463.55221105885]],"n":89}` | `{"blocks":[[40771.3320560674,68355.89874408676,303580.79629800393]],"n":89}` | `2.9374e-15` |
| `gen2839` | `{"blocks":[[30426.957276829016,30485.566248671214,1659541.598744629]],"n":93}` | `{"blocks":[[30426.898283505136,30484.909052469564,1659539.8893148112]],"n":93}` | `3.8787e-11` |
| `gen2864` | `{"blocks":[[88822500892.20778,107434832376.38777,10139325312740.799]],"n":211}` | `{"blocks":[[90106326379.56178,110220510077.56047,10253259242225.396]],"n":211}` | `5.6758e-14` |
| `gen2882` | `{"blocks":[[30414.18457633274,30474.510353873786,1080548.0221309138]],"n":74}` | `{"blocks":[[30414.174598576585,30474.548960054533,1080547.793490986]],"n":74}` | `1.6741e-14` |
| `third_derivative_outputs` | `{"blocks":[[57.238638693897954,112.81064583069951,4249.98436408646]],"n":146}` | `{"blocks":[[72.7128982159763,128.5625491631388,5686.325692315696]],"n":146}` | `2.6218e-12` |
</details>
<details>
<summary>The original 79 wrong cases: input identity and measured wrong named slot</summary>
The same inputs and exact binary64 values occur in the retained per-case attribution record. That record also gives the full steps and write histories. No claim is made that unrelated components in these scripts are all wrong or all right.
| Case | Input SHA-256 | Step / named → actual partial / output index | Measured value (bits) |
|---|---|---|---|
| `gen0086` | `4df48003f9f2bfde020811f4f9335a2658eb71f298930384a4cb5159c0e6d8ea` | `1: D(3,0) → D(1,2); out[30]` | `-11.550457408491006` (`c02719d58dae9e9c`) |
| `gen0111` | `4a60121f505fa13cef71003ef92dd5fab0c703839db47e367d6e3165c4fe3e8a` | `2: D(2,0) → D(1,2); out[178]` | `0.0012087372430256635` (`3f53cdcfbb687ce0`) |
| `gen0112` | `84cd0e109cba4a1e64787903c2a34be6933bb45ba1216427ccdd8c990790ce1e` | `0: D(2,0) → D(1,2); out[14]` | `124.91549873680505` (`405f3a97880386d9`) |
| `gen0124` | `d96b72dd177493230f3918d1748a97309951e5f6635cedfde8981cd06340ea7e` | `1: D(3,0) → D(1,2); out[18]` | `0.3176445149410608` (`3fd45449a8db3dad`) |
| `gen0166` | `4de065ccdf78222f7ffd35943b12fb4af04810684dcf834b3b4dfb78acaee4c7` | `2: D(3,0) → D(1,2); out[16]` | `-2636845626.9779134` (`c1e3a562475f4b11`) |
| `gen0201` | `983d07f41935094158ebfc8caca0b26bad95163d2da2d31ab1f19ebbfcb1b2c4` | `0: D(2,0) → D(1,2); out[14]` | `12576.920008190044` (`40c89075c2d41025`) |
| `gen0256` | `bf864366a1506c158adafc754548fa2a74beef0ebbcdf60fbd6ae603477a5b5a` | `1: D(3,0) → D(1,2); out[65]` | `13.795431244846744` (`402b9742c39daaab`) |
| `gen0411` | `31e9dfd22bcd2b77017977ec3b87d1fa59f6ba955920f59af994547b2cb45af1` | `3: D(3,0) → D(1,2); out[86]` | `-0.007866018108114324` (`bf801c0f1431589f`) |
| `gen0414` | `2dd0449248615a45f4791f2fc3c0c166a86ab58d616e601993c19ce687cb9502` | `4: D(2,0) → D(1,2); out[133]` | `-9.100532018925273` (`c0223378eecaf845`) |
| `gen0460` | `8fcb022acbe0aac5fe6ffbb3dde41ef49fb68938a5067d973954e8d64b96d9c9` | `2: D(3,0) → D(1,2); out[66]` | `0.048548910288894395` (`3fa8db671be4fc8e`) |
| `gen0495` | `f088ad03f45397c07eb445b4f56918b3a9cabbb1e72fd2c07a4ea338bbba5c2b` | `3: D(3,0) → D(1,2); out[127]` | `4.180980285512458` (`4010b952e55dfcac`) |
| `gen0500` | `e345d54c1e6e72d986b32da83a6d5f8b2695d2022d09c1daae0810900abc5f02` | `1: D(2,0) → D(1,2); out[68]` | `-2.218763810011797` (`c001c0073d8c6467`) |
| `gen0550` | `b7ac007f31e43c76b6486748de3735558a3fcd6110391dc27312d53deb4227c5` | `5: D(2,0) → D(1,2); out[96]` | `-4.772093172003938` (`c013169f97ace324`) |
| `gen0551` | `45f2b1c88c7a9dcac65d0f2b49d40f552723e10e4b2507da859ceb7355293e66` | `0: D(3,0) → D(1,2); out[11]` | `-0.0001900259283527403` (`bf28e8364b9b0448`) |
| `gen0554` | `312160ad42b1b5d983397a487db4b97ffadadf5a345a69bd2e685da4c7e5a0ba` | `1: D(3,0) → D(1,2); out[24]` | `-1.3575472366319557e-62` (`b31656a80b3da5a9`) |
| `gen0565` | `48acced4a5bc728e3559b502c6eaca17c65a6ed47d02cff39422e40ccc692e48` | `0: D(2,0) → D(1,2); out[14]` | `-0.014705512576740604` (`bf8e1dec7cb44290`) |
| `gen0615` | `eca9bbf3d85f8e5d2cc018e2452738e1b8511ffb9032fc1550adbfbe43d78b8f` | `2: D(3,0) → D(1,2); out[43]` | `-0.0017960939312878011` (`bf5d6d5d2c81d89a`) |
| `gen0640` | `e1442331b4ba3ca9ef116df39932839f80cbebfe8ff7e964f1a640ec14581d99` | `2: D(2,0) → D(1,2); out[123]` | `9.988881846404788e-31` (`39b4428623c24221`) |
| `gen0641` | `a5d1eca059347dbc383305efbcc9c3674d24200ff8a467e8cf41037a216d41c0` | `2: D(2,0) → D(1,2); out[123]` | `-16.703056407748573` (`c030b3fb813685fb`) |
| `gen0761` | `e012c720f0c16da34056943e47e6f044dfb49bfaeb7dd806119190b839738fe4` | `2: D(3,0) → D(1,2); out[46]` | `-16.42245763261416` (`c0306c262ef405fe`) |
| `gen0785` | `38f12468d5809e36112f37d6768a2e25703b84672b49683ac3097fdd1cff895f` | `1: D(3,0) → D(1,2); out[65]` | `-0.007167672776218397` (`bf7d5bd98298bad2`) |
| `gen0837` | `10a5333437bdbf27f94340d09ad9824813cac9c1fa760e8d0fbd36d7a497fa44` | `2: D(3,0) → D(1,2); out[25]` | `-187.0087335080898` (`c06760478b7e7400`) |
| `gen0863` | `fa41005408047a3e0681b0ea0f071e1cf700ed1f39b944a866bd57e5a209ce17` | `0: D(3,0) → D(1,2); out[11]` | `3.706065473084212e-61` (`33630ead97ff7122`) |
| `gen0869` | `796f377b44849d99840cbf312ccce4acb3749b64d211d657f1b8dd884c794f93` | `2: D(3,0) → D(1,2); out[25]` | `61.32131957593377` (`404ea920fff7199e`) |
| `gen0896` | `0fc6f501d9afb3a9851f62a3cdc4b95ff033ccc9c4584f0d9035722bc348568c` | `0: D(3,0) → D(1,2); out[11]` | `-0.06023639161848329` (`bfaed74de80f9514`) |
| `gen0942` | `36d9cef24efa4f0deab6774a647668379cbea77c09e136b80810097207b202d5` | `2: D(2,0) → D(1,2); out[75]` | `-5.527640947576007` (`c0161c4de8977a44`) |
| `gen0978` | `16da8e112063fa0637834b48ae14299553b5128f98d2565f972de3d42db39ec0` | `1: D(3,0) → D(1,2); out[65]` | `-5.043807100029481` (`c0142cdbc4b7d63e`) |
| `gen1010` | `ce0f6b44df5d55637efd2d4048caa97891e58a943a2b83e5b74fa9b1a5bfa399` | `3: D(2,0) → D(1,2); out[91]` | `-1.0154000817065179` (`bff03f1427f49045`) |
| `gen1033` | `4722dc0af92f48eb601d4065533ef921a4d367f880829db06ad0facaf199df82` | `3: D(2,0) → D(1,2); out[77]` | `1.4370933558807315` (`3ff6fe559a4ce7f6`) |
| `gen1058` | `d38499e54878f56a7a75253482399df0b938527e96bb825a87ce1db0165321ea` | `4: D(3,0) → D(1,2); out[88]` | `-3.3635704624734384` (`c00ae897a170eb8c`) |
| `gen1114` | `b3e5c8c3885ce9b3414b4f37d49911df82a862171a91162a023d5c95f9afab08` | `1: D(3,0) → D(1,2); out[30]` | `1.385161992635685` (`3ff6299f9f2084f5`) |
| `gen1119` | `617d1dec1c4266f77ddec40b5212915998fa4fcb9fcb3024e28e6344bdf00db1` | `2: D(3,0) → D(1,2); out[78]` | `-7.8701147674852e-62` (`b34030195f3a004f`) |
| `gen1121` | `06d247e3af554e7c8bf47b0ecf206a34c2ba491e6316dad25fc5231059ba9278` | `2: D(2,0) → D(1,2); out[72]` | `0.018811935995894622` (`3f93436fa781db29`) |
| `gen1167` | `0e3509e71a8f6a2e4d6791dee5fb13c971f9891eadeeac80c59a1b343bd94cd0` | `5: D(3,0) → D(1,2); out[110]` | `2.8324817610385094e-49` (`35da7e7244710fe4`) |
| `gen1174` | `3b9182dcc382644559160a3038e9d817c5d11e87ab00fc96dfe547af2ff31752` | `1: D(3,0) → D(1,2); out[65]` | `-363.06551171903754` (`c076b10c56042c56`) |
| `gen1265` | `2b7af8a5366ba896f1c6273ccc1ae800bd684fc77246b686ea482894b44fb529` | `1: D(3,0) → D(1,2); out[65]` | `-12.029373775659867` (`c0280f0a145ba36a`) |
| `gen1274` | `d6c7a046a1c0c2ad632bcdc22fc7ce65ebe08cac99c4f6488f65eba58a8ceeca` | `0: D(3,0) → D(1,2); out[11]` | `4.7236676238936495e-15` (`3cf546049a9cd7ef`) |
| `gen1333` | `0d18b6c9e131ebf8c60fc82f80a89454b6bad5ffd34c55497ffa96b41cd7eb44` | `1: D(3,0) → D(1,2); out[66]` | `-1.2669447513979307e-61` (`b34a0f3e257a30d1`) |
| `gen1360` | `04024341fe454e346c6ccf712b3f87ff443bf11522f4fbbef5a8cf72e1eb58f4` | `2: D(2,0) → D(1,2); out[28]` | `0.28564080963923255` (`3fd247f063f36bfa`) |
| `gen1363` | `59bdccb9b96cfaf526f3814c7e5d423437311a542123a60300aba7bd580f5cfc` | `3: D(2,0) → D(1,2); out[84]` | `1.6861537843785388` (`3ffafa7c63feeb5b`) |
| `gen1385` | `51ad69032231b109b9a636976ce1b0aa317c7a4a5d088231b7204bd4aef6172c` | `2: D(2,0) → D(1,2); out[178]` | `2.723573936592168e-16` (`3cb3a01b6d5b89e5`) |
| `gen1397` | `5e57004c087e0284e4252408eacd4c0e09785032b7f2cde9d64034ee13c5a5de` | `4: D(3,0) → D(1,2); out[53]` | `-6624.1238307257145` (`c0b9e01fb35ed52f`) |
| `gen1403` | `4cdd724c1a07e992b7fc3724b27f4648ec1c61ff7368c05943e990af293edb32` | `0: D(2,0) → D(1,2); out[14]` | `10.963845484493934` (`4025ed7d27c498f2`) |
| `gen1410` | `0acc03a618636cf0999f7eb0ac2fdc321dab2a07b89e2d66771cbbe4a338147d` | `2: D(3,0) → D(1,2); out[69]` | `-112.65878708190243` (`c05c2a29914af316`) |
| `gen1444` | `16438a58bf75fc376839ef8127fe695aee460bf162ec8c3055a27ee18558aadd` | `1: D(3,0) → D(1,2); out[65]` | `-1.6600208929734075` (`bffa8f72115ff5c4`) |
| `gen1468` | `3e7bdb6166f8886ec12659de5aca88e076b3d0347cc311e191908d3efaeca052` | `1: D(3,0) → D(1,2); out[15]` | `-3.6321747802892665` (`c00d0eb1a6b5964b`) |
| `gen1562` | `08be9103f5de9cfe44d1a8814eb462af6c109c8f1e25e0636c1ca3ac323ad5f8` | `1: D(3,0) → D(1,2); out[65]` | `0.170640939665158` (`3fc5d78ff39c3b67`) |
| `gen1584` | `f0555bd1ca9c40e83db2b164de028058aee1fc21b85306a9abbd258822e72b5e` | `4: D(2,0) → D(1,2); out[30]` | `-0.00017810217346443734` (`bf27581e05500a18`) |
| `gen1635` | `fd4d0c455a4adb4b5d65b10ec5508ddbbd11c074120ea70a28c15f44535b2c5b` | `2: D(2,0) → D(1,2); out[87]` | `0.1420179483388816` (`3fc22da4e5c7beec`) |
| `gen1694` | `de56df3e5bac341fe3b9838a032f761ef376193b9d20be9eed03ffc44a8014d4` | `2: D(3,0) → D(1,2); out[72]` | `4.6878380047132` (`4012c0589b1cc1a0`) |
| `gen1726` | `b07ade2fd5772ad144f48bb473bcfa0532b4f8354f627226805ee70eece3b50f` | `4: D(2,0) → D(1,2); out[92]` | `25.13261791980742` (`403921f33f7c6fb9`) |
| `gen1733` | `cf69421a4f14344373f0b1a9eef4d71ed3f9a555dcc692bd2e53d9682f09f16d` | `0: D(3,0) → D(1,2); out[11]` | `-1517.7895841236127` (`c097b72888bd916e`) |
| `gen1817` | `421a285c12439f54205809851c12be6ea1c72c87d0f939e76825aa0be161be55` | `2: D(3,0) → D(1,2); out[28]` | `-3.964099328069551` (`c00fb679b5613c00`) |
| `gen1818` | `87b2472e08b22d1e3cd1f6f04be26dd973f3c90e64d38fb81398db4bb4acd780` | `5: D(3,0) → D(1,2); out[161]` | `3.8359748011239256` (`400eb0138e78dbe2`) |
| `gen1890` | `65940b8bb3ac18059642ac1b0a4e74e38b995755569c1ead500b0df5c30fa04b` | `2: D(2,0) → D(1,2); out[22]` | `-0.020092287442253165` (`bf94931295dd8010`) |
| `gen1955` | `b3753c19abdcea573690a0c0afb9a80fdd426efb53d2f2226517069f5c65b892` | `0: D(2,0) → D(1,2); out[14]` | `-0.0008010517976805854` (`bf4a3fb5a3001601`) |
| `gen2010` | `57485178d00a8aba7d86b94a241293f605b310f124721af6f835746bb7458b6f` | `2: D(3,0) → D(1,2); out[16]` | `0.0829277684224362` (`3fb53ac1154dfbe7`) |
| `gen2015` | `c0341011ca827b61238beee0970d9e29a65df70fad3bcfbf0ab187d3dfc364b2` | `3: D(3,0) → D(1,2); out[89]` | `-7077.814319493817` (`c0bba5d0773e0a70`) |
| `gen2072` | `f875d773bc6b17f8cfbe81b83ed65c45d852976da357b7910918ad6dbe254c78` | `0: D(2,0) → D(1,2); out[14]` | `-2.221733576587689` (`c001c61c40def432`) |
| `gen2140` | `232ef35dbcf0b86eda524a2cdd55fa085fac4753eeb0c2a10a1c180b7a7f3173` | `1: D(3,0) → D(1,2); out[65]` | `88.8629248266755` (`4056373a290d5e93`) |
| `gen2168` | `afb2eec5a8dd7532f6991b3c0cfcf9a6f951632e86421b4e99cdc2df562e15f4` | `3: D(3,0) → D(1,2); out[103]` | `-2.5242259216476555` (`c004319d5c298980`) |
| `gen2170` | `36a3a3696a26fd0de7dab2cc4ad37a2b54103ef55b38561c40928af51505b419` | `1: D(3,0) → D(1,2); out[65]` | `0.05352221334192478` (`3fab674377d38214`) |
| `gen2213` | `24a3e82b7a1765408660b43f8f6a214d4874a1b08aefbff8d9a55fa4ae3e2a74` | `4: D(3,0) → D(1,2); out[87]` | `1.2357925070404463` (`3ff3c5ce5d2616cd`) |
| `gen2240` | `96f22e7292b010a633ba86af052349791b952b6e8dd93f803ad8bd5afdc06f1e` | `1: D(3,0) → D(1,2); out[66]` | `8.273897014998465` (`40208c3c3ac3c7e6`) |
| `gen2257` | `56ed11060d9c321ce1960d526bf0977ff3513ddc8565b69c1cbcdec0fd7fa26d` | `3: D(3,0) → D(1,2); out[70]` | `338.8860886295512` (`40752e2d6b45547a`) |
| `gen2381` | `55808d3df06a378a122913c6cc44e393ca31b2313f307afc21512cb62c8b4558` | `1: D(2,0) → D(1,2); out[68]` | `1.0332500264348623` (`3ff088312e020fd9`) |
| `gen2485` | `78e8538a0f6a94e60e596bda269074b20f1a7f79ac4af1197f378297fabf1eee` | `2: D(2,0) → D(1,2); out[32]` | `-6.103627421827888` (`c0186a1d4e8ee0d8`) |
| `gen2495` | `c6b0babbc92576c1fd6505a82bcd8f0c00415e31bc8dd8fe51edc50bd739e233` | `5: D(3,0) → D(1,2); out[108]` | `1.330571572345724` (`3ff54a056ac3651a`) |
| `gen2543` | `0527ab43d71daf6f485ac50d21049d050219b5ba6c4ffe955906035be9566559` | `1: D(3,0) → D(1,2); out[65]` | `0.0004971143592971405` (`3f404a18f530d900`) |
| `gen2598` | `fbb78af412bd1dd6674cb0d16ba674e130d0b50325bf9a7014d45b9ce826148c` | `2: D(3,0) → D(1,2); out[68]` | `0.007050008578397991` (`3f7ce078447de7fe`) |
| `gen2607` | `c78c8961c979fa6ab66e109dd2085f22c5478406b74a3f61bb850e6cbed2e702` | `3: D(2,0) → D(1,2); out[26]` | `0.012756483904214931` (`3f8a20124971c60c`) |
| `gen2685` | `726ac1e2ac3e47db02bafc970c8154fe7b18a7c4f3573a20f44b65bfba92b7f8` | `2: D(3,0) → D(1,2); out[22]` | `0.07517924159771541` (`3fb33ef2600011ba`) |
| `gen2754` | `d2692fad797e2e9332fdeb67dfe1e49cc6cfcecfff5880e96450d23ccad51200` | `2: D(2,0) → D(1,2); out[33]` | `7.833067750735332e-05` (`3f1488aecaec72e0`) |
| `gen2756` | `10543f07170d25b24c36b0013631177f9e7b38ba6b10e87f293716a594fd1074` | `1: D(3,0) → D(1,2); out[65]` | `-0.003874528919058832` (`bf6fbd79dfd51b22`) |
| `gen2824` | `985ce581b423c40787c3931d30ca4970e92a163bcb1b3eec6df2dca9bc0403d8` | `0: D(3,0) → D(1,2); out[11]` | `-117.89829346856504` (`c05d797da3e36ca0`) |
| `gen2945` | `4e15a87b83c2b0d9932001045f2157ffb217b707a3add7a9293d807caa2fcda5` | `0: D(2,0) → D(1,2); out[14]` | `0.7670261696640784` (`3fe88b7a773c4485`) |
| `gen2949` | `e12bea15388200613bdbfa01f4dc64a76acc7c132ee0cb77fa863452f0068019` | `4: D(2,0) → D(1,2); out[92]` | `0.0450025903849231` (`3fa70a945be086d8`) |
| `gen2966` | `278533c3d93d1a3df54e257f7e69ba48f400b848c3c4c17901f76344334f6f5e` | `0: D(3,0) → D(1,2); out[11]` | `-31.153421623031385` (`c03f2746a3b56b46`) |
| `upper_half_slot_overwrite` | `47852c7ac57e21e5b803752ca3d7aebe95b956cbed17da6678bbdcfdf785f6de` | `1: D(2,0) → D(1,2); out[26]` | `-0.055925937843527895` (`bfaca25314127938`) |
</details>
## Thirteen additional input-only supported wrapper cases
This is a bounded extension of the same independent evaluator, not a kernel change. The harness constructs `CurveBoundedSurface` with empty boundary lists and `StepSurface` with a B-spline base. Source inspection confirms the former forwards its evaluations to the basis (`surface/curve_bounded_surface.rs:313–381`); the latter uses `evaluate_step`, which forwards B-splines with the same parameters (`surface/surface/p1.rs:500–524,1458–1519`). Thus the mathematical surface is the input net in both cases. The independent oracle unwraps only those two forms, then evaluates the input-control-net offset O=S+d(Su×Sv)/|Su×Sv| at 80 and 160 decimal digits. No kernel derivative is an oracle input.
All **54 moved scalar components** meet the unchanged `1e-9` relative rule with precision stability below `1e-50`; the largest measured relative discrepancy is `1.8782e-11`. Each replaced row is exactly the actual profile-matched collector's encoding, also checked against the saved CLI encoding. A whole-script unequal-upper-half audit found no wrong named-slot aliases in these 13 scripts. Nested offsets, mutations, extended/clamped parameters, singular/step-off tangents and unsupported derivative orders remain excluded; `gen1840`'s independent disagreement is left unresolved, not blessed or automatically attributed to #2717.
| Case | Input SHA-256 | Wrapper | Old → new output checksum block (sum, abs sum, weighted sum) |
|---|---|---|---|
| `gen0110` | `7cc4e9ed2024dec85d60580fbb8e24dc50230ae88f79b7bb33e00b931a686aeb` | `step` | `[[-1793.265256031545, 4539.760888149531, -92063.26276291256]]` → `[[-2621.2086646228818, 5367.704296740867, -122100.0187950678]]` |
| `gen0756` | `5ada14a2cb68e27842d66a758c9a4a5bc9d9ed08bdafffc83e72bfac734fa178` | `step` | `[[1.3554805984540093, 7.391439631031779, 39.10197191819011]]` → `[[1.2122093199339468, 7.355706496090119, 36.380232245569125]]` |
| `gen0799` | `95398f876a0aa149584f1e89a0a1d5dd1366b4a347cfd38c36a6416507fba65b` | `bounded` | `[[15685.128669914944, 99233.2195831997, 941088.084522405]]` → `[[15676.719215315688, 99199.2694150199, 940771.9940762286]]` |
| `gen0824` | `39f05d9ab5a4472610d60a753220b5490461bb412fc98f85abd0fac223ee3613` | `bounded` | `[[33464.12457052777, 33497.84604874101, 744137.1302373111]]` → `[[33463.98433500545, 33497.953435537, 744126.2616127371]]` |
| `gen1240` | `535dc18cc183873da4b7b6f9e4cedcb69e27917afe71995e3f9720dbec211011` | `bounded` | `[[2015.222120878384, 2039.5927729894993, 39281.460277584854]]` → `[[2015.955618797746, 2040.007408455776, 39290.117769365075]]` |
| `gen1275` | `a8d836477bfc91cfe9322edee1345e09d18bd60e94014353d46c3cf92a69fce4` | `step` | `[[1.6588839137886584, 29.229129355613253, 284.7963141870564]]` → `[[1.6556057449840669, 29.222579118304704, 284.75313713692185]]` |
| `gen1469` | `6228cef53bdc34bf656f94aad667b2c1106e0976650273f710909f0ad845e6ca` | `bounded` | `[[148487834.10462496, 46013379173.96301, 32688985476.503548]]` → `[[307780230.4308045, 45491081875.461876, 43379397073.4833]]` |
| `gen1748` | `00749bcacd43840715bcae1508d4a755cf504f200cb0e984095270d6b30f4a11` | `step` | `[[13.606676736070348, 13.631349729313825, 75.07088936718932]]` → `[[13.606866826190364, 13.630757323655496, 75.07918855062239]]` |
| `gen1756` | `06ba7f6d39f1f3c27ad7a126317cad14dc8a359e01073f5c59be10a17abca867` | `bounded` | `[[977.2996042465044, 1155.959435686678, 44676.875424165686]]` → `[[963.9718474036881, 1173.7334467816693, 44287.30973723946]]` |
| `gen2231` | `0f56676c5b0bd0b16dbb67439f43f69a5e170ef7843a3b9f375f655ac2e6c912` | `bounded` | `[[1008.0970878598832, 1014.3304606380989, 19140.39888188975]]` → `[[1008.1011108250719, 1014.3260238388825, 19140.46842920942]]` |
| `gen2423` | `03bfb2de669ecf0e8900265f00e674bb769afb85c7c75524f2555cb78677cdd6` | `bounded` | `[[-129863870541.9563, 244523105179.42017, -12864006992933.385]]` → `[[-108399690827.79427, 225474076435.15067, -10885792900484.361]]` |
| `gen2662` | `f99a74ccc2923396bc7777667e7a4ed5477768f0c4ec79c26ce5860eb48d165d` | `step` | `[[1996.2288030841157, 2013.128826422467, 25924.04409976793]]` → `[[1996.2577180518608, 2013.0943424880004, 25924.731084359166]]` |
| `gen2762` | `ae5b6a4e02c506a42a9ad0713d2361990b7b3efaa2383f00098b5c67b8d21a50` | `bounded` | `[[5.498787870148015, 13.119847544973723, 117.5105632099215]]` → `[[5.438370415627446, 14.546961116731453, 117.24257744500959]]` |
<details>
<summary>All 54 component observations (display rounded; decisions use full precision)</summary>
| Case / index | Partial / axis | Observed | Input-only expected (17 digits) | Relative error |
|---|---|---|---|---|
| `gen0110 / 35` | `D(1,2).x` | `-2850.9464164505539` | `-2850.9464164505562` | `7.334e-16` |
| `gen0110 / 36` | `D(1,2).y` | `-714.84554194667953` | `-714.84554194667373` | `8.086e-15` |
| `gen0110 / 37` | `D(1,2).z` | `-382.56768812871474` | `-382.56768812871439` | `8.838e-16` |
| `gen0756 / 17` | `D(1,2).x` | `-0.0017965965393912132` | `-0.0017965965393913672` | `8.57e-14` |
| `gen0756 / 18` | `D(1,2).y` | `-0.050786103949312995` | `-0.050786103949313044` | `1.012e-15` |
| `gen0756 / 19` | `D(1,2).z` | `-0.0011863713004979324` | `-0.0011863713004979725` | `3.378e-14` |
| `gen0799 / 28` | `D(0,3).x` | `-0.015326054691295108` | `-0.015326054691295225` | `7.609e-15` |
| `gen0799 / 29` | `D(0,3).y` | `-0.0041048801719275546` | `-0.0041048801719273838` | `4.172e-14` |
| `gen0799 / 30` | `D(0,3).z` | `0.035464771065865722` | `0.035464771065865694` | `8.178e-16` |
| `gen0799 / 37` | `D(1,2).x` | `0.013659273014666726` | `0.013659273014662875` | `2.819e-13` |
| `gen0799 / 38` | `D(1,2).y` | `-0.16930255100861552` | `-0.16930255100860836` | `4.231e-14` |
| `gen0799 / 39` | `D(1,2).z` | `0.030855762103872225` | `0.030855762103869741` | `8.05e-14` |
| `gen0799 / 43` | `D(2,1).x` | `-7.0880793555857` | `-7.0880793555852684` | `6.088e-14` |
| `gen0799 / 44` | `D(2,1).y` | `3.5227057852188741` | `3.5227057852189336` | `1.685e-14` |
| `gen0799 / 45` | `D(2,1).z` | `7.0189194654588407` | `7.018919465458441` | `5.698e-14` |
| `gen0824 / 75` | `D(1,2).x` | `-0.0061179323062561641` | `-0.0061179323062551961` | `1.583e-13` |
| `gen0824 / 76` | `D(1,2).y` | `-0.070478807001997268` | `-0.07047880700199978` | `3.56e-14` |
| `gen0824 / 77` | `D(1,2).z` | `-0.056446254354832123` | `-0.056446254354830791` | `2.359e-14` |
| `gen1240 / 15` | `D(0,3).x` | `-4.2997202511322685` | `-4.299720251132344` | `1.759e-14` |
| `gen1240 / 16` | `D(0,3).y` | `6.5318781400089181` | `6.5318781400088968` | `3.313e-15` |
| `gen1240 / 17` | `D(0,3).z` | `12.031681444225347` | `12.031681444225173` | `1.447e-14` |
| `gen1275 / 11` | `D(0,3).x` | `-2.7928690761753669e-05` | `-2.7928690761753699e-05` | `1.089e-15` |
| `gen1275 / 12` | `D(0,3).y` | `0.00029301441667883978` | `0.00029301441667884732` | `2.572e-14` |
| `gen1275 / 13` | `D(0,3).z` | `-0.00010453193300659626` | `-0.00010453193300659929` | `2.887e-14` |
| `gen1469 / 66` | `D(0,3).x` | `-5684271.7373430096` | `-5684271.7373429872` | `3.996e-15` |
| `gen1469 / 67` | `D(0,3).y` | `3007006.1287919609` | `3007006.1287919539` | `2.379e-15` |
| `gen1469 / 68` | `D(0,3).z` | `-4395754.2124791071` | `-4395754.2124790819` | `5.732e-15` |
| `gen1748 / 40` | `D(1,2).x` | `7.395305148618172e-06` | `7.3953051487570702e-06` | `1.878e-11` |
| `gen1748 / 41` | `D(1,2).y` | `3.6422524869716576e-05` | `3.6422524869412721e-05` | `8.342e-12` |
| `gen1748 / 42` | `D(1,2).z` | `3.5587225574578896e-05` | `3.5587225574182336e-05` | `1.114e-11` |
| `gen1756 / 27` | `D(1,2).x` | `7.2847785298725256` | `7.2847785298724883` | `5.081e-15` |
| `gen1756 / 28` | `D(1,2).y` | `-63.214943386328045` | `-63.214943386328109` | `1.015e-15` |
| `gen1756 / 29` | `D(1,2).z` | `-3.1050350159108495` | `-3.1050350159107811` | `2.209e-14` |
| `gen2231 / 15` | `D(0,3).x` | `6.1515609799659057e-09` | `6.1515609799672077e-09` | `2.117e-13` |
| `gen2231 / 16` | `D(0,3).y` | `-1.7031922064566014e-09` | `-1.7031922064564419e-09` | `9.357e-14` |
| `gen2231 / 17` | `D(0,3).z` | `4.4956424221657102e-09` | `4.4956424221668369e-09` | `2.506e-13` |
| `gen2423 / 71` | `D(2,1).x` | `-22940207355.336498` | `-22940207355.336506` | `3.623e-16` |
| `gen2423 / 72` | `D(2,1).y` | `2434448490.510294` | `2434448490.5103102` | `6.708e-15` |
| `gen2423 / 73` | `D(2,1).z` | `-2398325735.1938248` | `-2398325735.1938133` | `4.779e-15` |
| `gen2423 / 90` | `D(2,1).x` | `-2387510684.0437241` | `-2387510684.043777` | `2.208e-14` |
| `gen2423 / 91` | `D(2,1).y` | `-21746697320.231216` | `-21746697320.231243` | `1.249e-15` |
| `gen2423 / 92` | `D(2,1).z` | `-64074153297.938492` | `-64074153297.938408` | `1.369e-15` |
| `gen2662 / 18` | `D(1,2).x` | `0.00034038376084129056` | `0.00034038376084129257` | `5.872e-15` |
| `gen2662 / 19` | `D(1,2).y` | `0.00010951663774112274` | `0.00010951663774112518` | `2.224e-14` |
| `gen2662 / 20` | `D(1,2).z` | `-0.00010690599849317438` | `-0.00010690599849317812` | `3.499e-14` |
| `gen2662 / 34` | `D(0,3).x` | `-3.5645030615455682e-07` | `-3.5645030615454867e-07` | `2.29e-14` |
| `gen2662 / 35` | `D(0,3).y` | `-2.7392384406755991e-06` | `-2.7392384406754944e-06` | `3.825e-14` |
| `gen2662 / 36` | `D(0,3).z` | `4.6564817003619468e-06` | `4.6564817003617673e-06` | `3.864e-14` |
| `gen2762 / 24` | `D(0,3).x` | `-0.47719973655667419` | `-0.47719973655667358` | `1.271e-15` |
| `gen2762 / 25` | `D(0,3).y` | `0.21488770295869314` | `0.21488770295869242` | `3.413e-15` |
| `gen2762 / 26` | `D(0,3).z` | `0.3135850468117849` | `0.31358504681178329` | `5.065e-15` |
| `gen2762 / 44` | `D(0,3).x` | `-0.61350814367711859` | `-0.61350814367711581` | `4.578e-15` |
| `gen2762 / 45` | `D(0,3).y` | `0.073007941552904604` | `0.073007941552903535` | `1.46e-14` |
| `gen2762 / 46` | `D(0,3).z` | `0.30682319204641978` | `0.3068231920464225` | `8.889e-15` |
</details>
The four additional scope controls accept bounded/STEP/composed pass-through evaluation and reject a wrong returned component, nested offset and edited script. Together with the previous nine controls, all 13 pass. No result-body construction, topology, validity check, volume or retained-input contract is changed by these scalar golden replacements.
Full precision results, code, controls and the actual gate are retained in the readback-verified 15-member archive, SHA-256 `0f688a32ee293eea988f8db5f1f5dda797bdaad2f26045d84dffdc0ac28c9072`.
## Twenty-six additional scripts with non-aliasing named grids
Unequal request shape alone is not a wrong result: e.g. a `(hu,hv)=(1,3)` upper-half request can keep every serialized named slot correct. This bounded oracle checks the inspected write order for **every successful upper-half evaluation in each whole script**. Every serialized slot must have its requested partial as its final writer; an actual alias is excluded even if its returned value happens to match. It then independently evaluates **every moved component**, not just the unequal request, from the original control net at 80 and 160 decimal digits. Every one of the 162 components is within `1e-9` relative and has precision stability below `1e-50`.
All scripts stay read-only. The same direct/pass-through B-spline scope and exclusions apply; edits, clamping, extensions, unsupported orders, interior-knot sides and singular/step-off evaluations are not blessed. The new negative controls reject a true named-slot alias, a wrong value despite correct writers, and a changed output index not covered by decoded evaluations. #2717's implementation and refusal-versus-mask contract remain untouched. Three independent disagreements (`gen0865`, `gen2145`, `gen2860`) remain unresolved, not blessed or automatically attributed to that issue.
Each replacement below is the complete actual collector encoding; integers, statuses, shape and all unrelated rows are preserved. Full precision component observations and indices are in the verified 16-member archive, SHA-256 `19f4705e170673119cbf58b2437b6e65c3273b067f500b548f81b76868bad671`.
| Case | Input SHA-256 | Independently checked moved components / largest relative error | Old → new checksum blocks |
|---|---|---|---|
| `gen0080` | `9e436658a1572dca1558bf2442e6797b403917c305406b3b57c13ab647915df0` | `6 / 3.6774e-15` | `[[30379.00257735898, 30447.956764713053, 1686880.8415455215]]` → `[[30381.206162080358, 30448.991614664017, 1686945.450146894]]` |
| `gen0236` | `f1f18708aae2c87ea13310b1234e711141b070b2b0271b2118503dafb3e6b302` | `6 / 1.1183e-12` | `[[30421.234672403345, 30456.973904279326, 2662674.4826113833]]` → `[[30421.06883505922, 30456.808066935217, 2662669.7392165186]]` |
| `gen0252` | `e2623e88b9a9effb2d532f01613790991180c175f7c431c6e07b0d25cac87f71` | `3 / 3.3726e-13` | `[[30406.384453877406, 30478.85928586466, 1566099.3574601205]]` → `[[30406.354976187125, 30478.87649281059, 1566098.8504459893]]` |
| `gen0379` | `6e75fe9c11aef56989e7f6eb40a94d541b14497c43e7f4ecc958b985df98e378` | `3 / 5.4169e-14` | `[[31699.330865783555, 32275.434630051248, 608329.1022738847]]` → `[[31700.498837974286, 32276.578274146483, 608426.1846821741]]` |
| `gen0420` | `00690c96b2204acc746577753bb9780882ed1c9b7b32be9b3cb45d4fe42d4da5` | `9 / 3.2509e-15` | `[[31250.937855246448, 31793.443414857327, 2461983.8602397055]]` → `[[31335.61860395548, 31684.50755778467, 2465314.897156685]]` |
| `gen0466` | `979b5a76b44c21cd69755575d9307ac6936dcc41637436f796aa65c6b81279e3` | `4 / 4.7499e-13` | `[[60868.818536099345, 60918.42222606814, 3836571.0485280785]]` → `[[60868.894608623326, 60918.2921872957, 3836577.3904423118]]` |
| `gen0700` | `36e56a9d092e5a925db2069181a156218103aa42ee3f1d62d9457f8635b2288e` | `9 / 8.1622e-15` | `[[30392.901880758895, 30459.305723063335, 502349.9584627636]]` → `[[30391.922884114574, 30461.59455671349, 502273.1675116542]]` |
| `gen0811` | `412b0d592f4de2a157bf6f182e536f9d826d0306f9f2f3f98c548c8931f65386` | `9 / 1.1564e-13` | `[[31538.727703292338, 31580.115359256026, 1860370.1995832226]]` → `[[31539.44686175704, 31579.76019984597, 1860392.0706096264]]` |
| `gen0835` | `9b762b97777013b43903b7ea92ac48093bf0b6e86ddb37596c5bfd61b94ad7d9` | `6 / 1.414e-13` | `[[30414.330112128788, 30497.647075211837, 1658793.2847836807]]` → `[[30413.157940337896, 30497.146754871326, 1658759.1715066873]]` |
| `gen1052` | `1bdaf6aec3c27961414ea68fcd4672443acc0df63793cd3d5f9e27cfbf3a5be2` | `6 / 6.3184e-13` | `[[61918.03497148949, 62025.00353079037, 3591838.874331083]]` → `[[61918.99313783185, 62022.14715561212, 3591912.498154636]]` |
| `gen1129` | `7e9ca32cdd9a71b3850c5745130602b5cb7ba00d972873feb9a84c5af6bf33e7` | `4 / 5.3587e-12` | `[[1186497979.152731, 1218626548.3444576, 32735246131.13009]]` → `[[1186537755.2086275, 1218558795.090664, 32736071395.094486]]` |
| `gen1535` | `ee6a964a87629b2eaa449180cc195524c26f2c48bebf4b2560446e4e791e5627` | `8 / 1.1332e-14` | `[[49497.583260137486, 155368.6558296504, 4484276.854383658]]` → `[[76825.05070814188, 177478.76016904792, 5748603.666975015]]` |
| `gen1676` | `2d27da7af77ef77f6f607838e843e059d8e38e73f9c9eb15e4694aab33bcdb0c` | `8 / 5.5347e-15` | `[[-92.3124121670792, 183.10863961763488, -2742.3680877607035]]` → `[[-90.53952096325878, 182.6202420786579, -2658.9683361616776]]` |
| `gen1691` | `f3cb837213375c6cb1a548cf8e9e9eac553dfef1d02f9fccecbbd386a2555986` | `6 / 1.0436e-13` | `[[62964.96195446904, 63030.27212845825, 3709590.7899841545]]` → `[[62964.88025255849, 63030.35212720648, 3709584.498368973]]` |
| `gen1743` | `258ff3eba9d71e6d896c6422f449821f9a679e8467b7f834c09fc8a87b3fa6a1` | `12 / 2.738e-14` | `[[27712.10813313832, 38745.97861079435, 215263.02667339597]]` → `[[27806.873231672107, 38436.394755773166, 225937.0909352196]]` |
| `gen1804` | `0fd77d6d729189c4d974960517ab127228f18f10faf9e7b49d733259b8c2b7dc` | `5 / 1.8609e-12` | `[[30473.35618335161, 30513.728819801316, 1965374.501426186]]` → `[[30473.356490371585, 30513.728229923236, 1965374.5090134607]]` |
| `gen1905` | `c923bd8e86e3a3c1d0dfeaf8d3f6de6750aa0d8d43bd185aa0b4183464e6e39e` | `6 / 1.9336e-13` | `[[31837.222528412156, 31903.469290274574, 1432598.639920631]]` → `[[31837.242682660522, 31903.45270763585, 1432599.028721083]]` |
| `gen2058` | `cc3902590fd5eec4bdf13186fb366df954f63716e9e113a1e54530aad96a904a` | `3 / 1.4144e-15` | `[[60877.968770035375, 60915.38270499651, 4385454.476949993]]` → `[[60876.88228251488, 60922.86583329465, 4385379.8824029]]` |
| `gen2101` | `320e05376912fbd7ba1870366ae9e483028e83c78c223c2fad49883411c49005` | `6 / 1.4334e-15` | `[[6.120303143823539, 29.807555644234586, 44.089840393630936]]` → `[[12.736870292892549, 36.59454372347717, 171.08369003361463]]` |
| `gen2225` | `369ac89a0e0b8fb3c3a89fc78e530552b608901f0e411758c8f4e578800ccc74` | `7 / 2.5883e-12` | `[[-286910412392.90857, 4398900748443.411, -3427730726124.274]]` → `[[304464144073.1033, 5873260061992.563, 9249330930772.734]]` |
| `gen2242` | `bd573307972059bf9606fc3420c9fb336cd3818d3f7d2fdf8fe5258e53bcd21e` | `6 / 2.0845e-13` | `[[61857.73232266659, 61947.336223590755, 4056530.591775608]]` → `[[61852.770849920766, 61939.45936701227, 4056097.0808932446]]` |
| `gen2402` | `bcd174c210ea7ec7ba6cc338a9bef1448bcad8a7503c0b65245d67c0f5684a34` | `6 / 1.1291e-14` | `[[32193.652313328614, 33075.20055926031, 1440327.8072871233]]` → `[[32127.0172981427, 32674.650403130265, 1438086.9123989216]]` |
| `gen2586` | `27c106e0d41d051e77ee878a52bd357e6faaa1874646a3069c36b977b361d920` | `8 / 1.3559e-13` | `[[30402.4513996562, 30492.49403155344, 2691381.7170912246]]` → `[[30403.280350555364, 30490.853927247652, 2691397.098786934]]` |
| `gen2721` | `f2ac0052ab83ae2f3be342e7ffc4415c8fe1ff28d52d60769e766b4550e77fa7` | `6 / 5.9118e-14` | `[[119636313604.18224, 573461094890.6915, 7083305718612.147]]` → `[[-6770903206.227723, 461629696222.1089, -2181812207294.0457]]` |
| `gen2888` | `90c613d2379d34a3367cb6fa9e6a8571cd71e94f84448b4e09f0f103c08785a5` | `4 / 1.0343e-11` | `[[-10102.721720538217, 24393.523038543684, -142894.98664173268]]` → `[[-10142.640060926964, 24529.309695200158, -143905.46653528017]]` |
| `gen2913` | `e96427c91d40ce3079de04c33ac6275cdb615aaceebd5d59aa2de13cbd732553` | `6 / 3.732e-14` | `[[30417.766309459083, 30477.93182223716, 502681.3094662713]]` → `[[30417.680348608184, 30477.79120381156, 502675.1315456713]]` |
## Four additional nested-zero identities
In each of these unmutated scripts exactly one nested distance is zero. The zero offset is the identity, so the mathematical derivative is that of the remaining single offset of the original input net. This argument makes no assumption about the orientation or fold behaviour of **two nonzero** offsets: those remain outside this oracle. The original domain, regular-tangent, total-order and whole-script named-writer restrictions still apply. A clamped request and a mutated script remain excluded, not blessed.
All **17 moved components** independently agree at 80/160 decimal digits, with precision stability below `1e-50` and maximum relative discrepancy `1.0118e-12`, below the unchanged `1e-9`. The new controls accept both zero identities, reject two nonzero offsets, and detect a wrong returned value. Together all 20 controls pass. Only these four encoded rows change, each identical to the preserved profile-matched collector; all other expectations and failure entries stay unchanged.
| Case / input SHA-256 | Identity | Old → new checksum blocks |
|---|---|---|
| `gen0302` / `30a04c108e5d8e4b4765f2153918410ab70bd8ed1ae36ceb4c4ea091960fae0c` | outer zero | `[[30827.64211473529, 30862.21966957595, 909319.6839455989]]` → `[[30827.640352428367, 30862.236462334913, 909319.6443810975]]` |
| `gen0957` / `0903c49446b3f0fdeca1630789ef4c93778b05849ac678f8f5455f99f0298d7c` | inner zero | `[[56990.064452212995, 60611.50358534768, 2558024.7556519024]]` → `[[56969.283059406494, 60647.37636115499, 2557313.2601297847]]` |
| `gen2311` / `335a922cf7b661a8974ebededb45a49eaf26ae092355c6397017cb09989f223e` | outer zero | `[[61557.13565702396, 61724.96166855296, 3537970.152684235]]` → `[[61547.02359600594, 61741.13247766892, 3537325.0349517446]]` |
| `gen2766` / `adeba1dbd034c1039a4994c4ab29fa57ec2a04f662aa7c04c5cbb6a090f18415` | outer zero | `[[958900887471.6716, 1414026493265.7517, 71062889191835.97]]` → `[[942303322374.7341, 1397428928168.8142, 69858556187898.766]]` |
All 17 full-precision component observations remain in the nested-zero evidence archive named below.
Code, raw data, full-precision observations, controls and the actual gate are in the readback-verified 18-member archive, SHA-256 `e9444ddcad2126de4888713d5878e1323aab1237b9ab41f8b90e33ef93cb025e`. No geometry-body construction, topology, validity, volume or retained-input contract is changed by these scalar expectation updates.
## Eight additional locally regular nested offsets
This is an independent **local derivative proof**, not permission to flatten arbitrary offsets. Put `T=S+d*n`, where `n` is S's unit normal. Differentiating `n·n=1` shows `Tu` and `Tv` lie in S's tangent plane; hence `Tu×Tv=J(Su×Sv)`. Where `J>0` and both surfaces are regular, continuity preserves that sign in a neighborhood, so T's unit normal is n and its further offset is `S+(d+e)n`, including the derivatives at that point. This is the normal/orientation relation in [Patrikalakis–Maekawa–Cho §11.3.1, equations 11.17–11.23](https://web.mit.edu/hyperbook/Patrikalakis-Maekawa-Cho/node224.html).
For **every moved evaluation** below, jets computed only from the original net independently establish the positive J and normal collinearity at 80/160 digits. J ranges from 0.7951 to 2.5695; the relative squared collinearity residual is below `1e-100`. All **36 moved scalar components** satisfy the unchanged `1e-9` relative comparison and `1e-50` precision-stability bound (largest discrepancy `2.2847e-11`). The distance sum is formed independently in decimal from the original scalar inputs, not from kernel state. Whole-script named-slot checks still exclude actual aliases. Mutation, clamping, extensions, interior-knot sides and step-off thresholds remain excluded.
The added paraboloid controls independently check the point, first tangents and Jacobian factor in closed form; a negative-orientation offset, a focal offset, and an incorrect returned value are rejected. All 24 controls pass. `gen1323` and `gen2190` fail the positive-normal test and remain **unresolved**, not blessed with an unjustified distance sum. This proves no global fold absence, surface topology or result-body validity; those claims are not made.
| Case / input SHA-256 | Components / max relative error | Positive local normal factors | Old → new checksum blocks |
|---|---|---|---|
| `gen0231` / `ce024ef3518668831c4a262f61cd450895b0724b4b02129bbf23fe55c112fa4e` | `12 / 1.9827e-13` | `[0.8988037434837284, 0.8964042836013618]` | `[[45580896831.72423, 95389791944.91127, 4002174278995.3906]]` → `[[45581293347.95954, 95383078871.46913, 4002191020838.163]]` |
| `gen0693` / `09f41f3cf32a195ae9340c98529931e9695223d011e272821c2ff36b6ab0ea12` | `3 / 4.874e-15` | `[1.2836520633183264]` | `[[30768.87584330439, 30937.918892050533, 505211.64055525354]]` → `[[30768.25063146633, 30938.188245733425, 505166.13185559894]]` |
| `gen1737` / `6b5e541dea9890626cb0d8abaf0c5012ffd1bf023dd32f22f958c6d184d390a6` | `6 / 3.6763e-13` | `[2.5694737131193226]` | `[[29848.100318849418, 31834.48077184831, 1312427.284835471]]` → `[[29847.345690061786, 31831.810669040908, 1312406.4322319615]]` |
| `gen1831` / `7bfd0b144c304adde1c533f669c21d44527fc91109ca5d83b04889a3a91ad0b9` | `3 / 4.237e-12` | `[0.9889378944889109]` | `[[-12625472801.0987, 30180114690.678963, -660746037972.9828]]` → `[[-12621900570.213278, 30175545644.943497, -660510738258.7076]]` |
| `gen1961` / `95e25ea1d730f8a2056799fbfd082092cc1301cd053e6e343388019a6be57386` | `3 / 1.1342e-14` | `[0.955167466420743]` | `[[31828.353267824037, 31906.008061543303, 630009.7380669664]]` → `[[31827.99141782863, 31905.195112392754, 629983.9711326736]]` |
| `gen2461` / `a230545cc2d3c29214688e00f4ae3836c571d2b7e16fef59e113c3dc2ee409ca` | `3 / 2.2846e-11` | `[1.0200279685187483]` | `[[-0.007559155208330911, 0.013805289471912924, -0.08892357320304935]]` → `[[-0.007559155134554697, 0.013805289432922412, -0.08892357109854443]]` |
| `gen2680` / `a34ce59d5704014135d17d97489e8d83bb665b990e1fcfd81c6035db91c28bda` | `3 / 3.0828e-14` | `[0.7951450461677018]` | `[[-4.172894886415667, 27.14634803960104, -59.00430477408537]]` → `[[-3.411351874036506, 51.416200568900344, -47.69090686109031]]` |
| `gen2938` / `6d66abfa1a66636f0e086d0e9fc316260ef722e71089e94fd7823f622ee9ce18` | `3 / 1.9294e-13` | `[0.9712510356712598]` | `[[61656.09857959446, 61701.59111604824, 3392138.137636158]]` → `[[61659.71526991051, 61696.25679886635, 3392412.5706676855]]` |
Full-precision observations, original inputs, executable proof and all controls/gates are retained in the readback-verified 20-member archive, SHA-256 `ffa9677bcc4a9c2d96047e740e6c1d515f1df2615ba7fc0482146b176442fbfb`. Only these eight complete encoded rows change; all case identities, unrelated expectations and known failures remain unchanged.
## Twenty receiver-copy/scalar-setter scripts, evidence preserved
The preceding twenty-row old/new table, receiver-state proof and all 89 component bounds are preserved unchanged in [this committed finding](https://github.com/altvnk/solidcore/blob/2ef53c83e1e4f0f37146f27e79f4a2cb5ff3b445/plan/findings/surface.offset_surface--copy-setter-input-oracle-evidence-2026-11-08.md), including the original thirty-member archive hash. Those rows are not reblessed here.
## Clamped-point evidence retained verbatim
The preceding eighteen-row old/new table, complete published clamp proof, exclusions and archive hash are preserved verbatim in [this committed finding](https://github.com/altvnk/solidcore/blob/b982cc76604d6c910dfe313064aa4417250f0674/plan/findings/surface.offset_surface--clamped-input-oracle-evidence-2026-11-08.md), explicitly attributed to the historical `2ef53c83e` publication. Those eighteen rows are not reblessed here.
## Canonical-revolution evidence, preserved
The thirteen-case / 62-component input-only proof, all old/new blocks, construction/precision controls and the independently wrong `gen1603` named slot remain in [the committed finding](https://github.com/altvnk/solidcore/blob/beb1eb1843a2e988eb42ab169467494395fc6047/plan/findings/surface.offset_surface--canonical-revolution-input-oracle-evidence-2026-11-08.md). Its verified 35-member archive is `9266f4152921f181300f3811f269622338fec6b672311413a86764fece3d7a0c`. No prior row is reblessed here; no suffix-correctness or #2717 implementation claim follows.
## Five returned-base/inversion-query scripts, evidence preserved
The five-case / 26-component proof, all old/new blocks, original input hashes, clamped points, 52 controls, `gen2558` disagreement and executable archive are preserved in [the committed finding](https://github.com/altvnk/solidcore/blob/8e07893cff99db33d90e3ed10d6551a87587f032/plan/findings/surface.offset_surface--returned-base-input-oracle-evidence-2026-11-08.md). Those rows are not reblessed by this update.
## Parameter-edit evidence, preserved
The five-case / 24-component proof, every old/new block, original input/bit identities, 59 controls and pre-edit versus post-edit distinctions remain in [the committed finding](https://github.com/altvnk/solidcore/blob/beb1eb1843a2e988eb42ab169467494395fc6047/plan/findings/surface.offset_surface--parameter-edit-input-oracle-evidence-2026-11-08.md). Only `gen0909`/`gen2960` claimed changed post-swap/post-reverse jets. `gen0304`/`gen0672` still disagree. No previous row is reblessed; the verified archive remains `9887e283e19139ec82596e30a378753dc2c6b55fb6930dce9157d2243b5bab2d`.
## Seven further independently supported rows
`gen0046`, `gen0294`, `gen0715`, `gen1107`, `gen1871`, `gen1956`, `gen2606`: **29 moved components**, input-only 80/160-digit jets, maximum relative error `7.9414e-14` under unchanged `1e-9`; **66 controls pass**. `gen0294`/`gen1956` use complete scripts; the other five prove every moved bit before an entirely bit-identical suffix. No suffix-correctness claim; all complete production cases still run.
The [complete old/new encodings, all observations, original inputs, boundaries, suffix digests and exclusions](https://github.com/altvnk/solidcore/blob/beb1eb1843a2e988eb42ab169467494395fc6047/plan/findings/surface.offset_surface--unchanged-suffix-input-oracle-evidence-2026-11-08.md) are committed. Verified 44-member archive: `ffbef76485eb2d56b266d1e1dad0a8c785d27f05dfe03023ed629b1439026afe`. Numerical disagreements remain unapproved; no decoder relaxation, production crop or skip.
## One explicit-side-clamp script with extension enabled
`gen1332`: all **three moved D(0,3) components** agree with input-only 80/160-digit jets at the explicitly clamped VMax endpoint, maximum relative error `8.06353e-14` under unchanged `1e-9`; **85 controls pass**. The original enabled flag and side mask **11** stay unchanged; VMax bit 8 applies before extension. Independent regular first samples separate the periodicity positions from the source threshold by more than `6.632e12`. The full three-step/72-scalar script is decoded; no crop or actual-extension claim.
[Full old/new encoding, original input hash, all observed/independent values, state proof and exclusions](https://github.com/altvnk/solidcore/blob/ceadc86fedb8d337812b4882175f4fbb0fd0b79c/plan/findings/surface.offset_surface--explicit-side-clamp-input-oracle-evidence-2026-11-08.md). Verified 64-member archive: `c0277e8e83feb5100d1c40e5f947f3aa476e0073555c19acd9fcdf403086ec81`. Numeric-only `gen0590` remains excluded by its first-sample normal fallback; `gen0962` remains excluded because swap does not remap its original side mask. Neither is blessed.
## Two enabled-but-unused extension prefixes
`gen2007` and `gen2248`: **12 moved components**, input-only 80/160-digit jets, maximum relative error `8.80533e-14` under unchanged `1e-9`; **78 controls pass**. Every prefix point stays in the original direct B-spline domain, so the enabled flag never reaches extension or clamping. All moved bits precede unchanged suffixes of **4 / 234 scalars**. No actual-extension, post-edit or suffix-correctness claim; full original cases still run. `gen2690` disagrees and stays unapproved.
[Full old/new encodings, all observations, original input identities, state proof and boundaries](https://github.com/altvnk/solidcore/blob/670557efa12f074f96d7fc559a1d854f7f722aca/plan/findings/surface.offset_surface--unused-extension-input-oracle-evidence-2026-11-08.md). Verified 56-member archive: `b2b23e145751baaa363d55a718475028b67f24f513de9dce23d9884d297e1064`.
## Two further wrong named-slot results, not blessed
`gen0757` step 1, `out[63..65]`, and `gen2243` step 2, `out[60..62]`: `D(1,1)` overwrites named `D(2,0)`. Input-only 80/160-digit jets prove six wrong components, relative discrepancies **0.9128–1.6373**; **71 controls pass**. The first proof uses the explicit clamped endpoint after a returned copy; the second precedes swap.
Both wrong goldens are removed; full cases keep executing under case-specific #2717 failures. [Old encodings, observed/independent values and bits, inputs and limits](https://github.com/altvnk/solidcore/blob/beb1eb1843a2e988eb42ab169467494395fc6047/plan/findings/surface.offset_surface--two-query-prefix-named-slot-failures-2026-11-08.md) are committed. Verified 49-member archive: `9169e48e605bddc010862db3b610c420e54372dba1ce9ad46ce73c5b35fccfb7`. No suffix/writer-correctness or refusal-versus-mask claim.
## Six earlier named-slot proofs, retained verbatim
The full six-case / 21-component published section, every input hash and observation, original collector attribution, controls and archive hash are now [preserved verbatim in a committed finding](https://github.com/altvnk/solidcore/blob/670557efa12f074f96d7fc559a1d854f7f722aca/plan/findings/surface.offset_surface--six-named-slot-evidence-published-2026-11-08.md). Exact text equality was verified before replacing the inline duplicate. No prior result is reclassified or reblessed.
## Verification and remaining limits
At exact head `ceadc86fedb8d337812b4882175f4fbb0fd0b79c`, workspace fmt, workspace/all-target clippy (`-D warnings`), wasm32, panic inventory and all **23 offset-module tests pass**. Rust 1.98.0, `CARGO_BUILD_JOBS=2`, commands under `nice -n 10`; offset tests use `CARGO_INCREMENTAL=0`. The actual full-case unit gate remains **FAIL**:
```text
FAIL surface.offset_surface cases=3182 changed=188 added=0 removed=0 broken=0 known_failing=88 rust=29.309s
```
All **3,182 cases / 3,094 golden rows / 88 known failures** remain selected. The latest commit changes only the complete `gen1332` golden plus its evidence record; every other row and known failure is unchanged. **167 supported cases / 815 moved components** have independent evidence; **188 ordinary differences** remain. Numerical source SHA-256 stays `86565c6a5d30bf5e8efb6e3dcbe8b34b4ecb4683d60982a4e214adb525889bef`. The collector remains attributed to measured `7a90407a0`, not a new execution. The full `goldens` package tests passed **732 / zero failed / 31 ignored** at `beb1eb1843a2e988eb42ab169467494395fc6047`, not relabelled here. No full kernel-suite or all-unit-golden success is claimed. Exact-head canonical [run 42478935902](https://github.com/tangency-labs/solidcore/actions/runs/42478935902) at `ceadc86fedb8d337812b4882175f4fbb0fd0b79c` completed **`action_required` with zero jobs**, not success. No approval request, workflow rerun or review bypass was made.
Historical test/collector executions retain their measured revisions and archived evidence. The upstream-commented integration test passed at `ece73364c`, not a new execution here. No downstream or canonical-CI success is claimed; the historical attribution-review thread remains unresolved.
In scope: the four terms, their retained regression and evidence-backed golden dispositions.
Expected edits: the existing numerical file and records, this unit's golden and its known-failure entries.
Related work / available follow-ups: #2717's implementation and refusal-versus-mask design remain separate. No new PR or unrelated work lane is claimed.
Status / next step: keep draft; explain or fix the remaining 188 ordinary changes before readiness. No maintainer ping, workflow approval request, rerun or bypass is made.
Original executable oracle and control sources remain retained in the verified evidence archives; their inline duplicate is omitted here to keep the complete per-case migration evidence within GitHub's body limit.
@@ -0,0 +1,105 @@
# Offset derivatives after returned base offsets and inversion queries (2026-11-08)
Continues #1914 with five independently supported golden replacements, not a
new numerical implementation or #2717's grid contract. All 26 moved components
are receiver derivatives; no returned-surface or inversion-query value is blessed.
`gen2558` independently disagrees and stays unresolved.
## Receiver state and independent calculation
The runner in `crates/goldens/src/units/surface_offset_surface.rs` serializes
`base_surface().create_offset_surface(...)` without assigning the result to its
receiver. For a direct B-spline, `BSplineSurface::create_offset_surface` in
`nurbs/b_spline_surface/p1.rs` copies the input into an owning `OffsetSurface`,
including for zero distance. The evidence decoder accepts only that non-null
type `15400`, decodes its entire payload and retains the receiver's original
distance. Other kinds and nullable providers are not inferred.
`step_inv` serializes a parameter pair and location on success, or just its
status on failure. None of those fields moves in these five cases. These are
direct B-spline receivers with extension disabled throughout: the inversion's
base is not a nested offset, and `select_surface` cannot make an extension.
The query therefore leaves the input geometry/distance used by subsequent
derivatives intact. This is not a claim that inversion is state-free in general;
extension-enabled and nested receivers remain outside this proof.
From the original rational control net, weights and knots alone, the existing
independent Taylor algebra evaluates
`O = S + d (Su x Sv) / |Su x Sv|` through order three at 80/160 decimal digits,
converting each binary64 input exactly. The four-term counterfactual selects
the moved indices only; neither its derivatives nor its golden supplies an
expected value. Every moved index must decode as a named receiver derivative,
with no final-writer collision, and all other output fields must be unchanged.
No new tolerance or absolute floor is used.
All 26 components pass strict relative `1e-9`, maximum error
`1.176059847726366e-12`; maximum relative precision drift is
`1.692416792727516e-76`. For the three boundary cases the original knots determine
the clamped point before differentiating, not derivatives of a constant extension:
| Case / step | Requested UV | Evaluated UV |
|---|---|---|
| `gen1623` / 0 | `[2.4772525243355457,0.27913697416804306]` | `[1.0,0.27913697416804306]` |
| `gen1782` / 1 | `[-0.3652375559371569,0.6945687218522235]` | `[0.0,0.6945687218522235]` |
| `gen2425` / 0 | `[0.0823062150585343,-2.08422407711569]` | `[0.0823062150585343,-1.5916340197964498]` |
## Exact row replacements and retained input identities
Each new row is the complete retained actual collector encoding. The common
fields remain `deferred=null`, `error=null`, `ints={}`, `topology=null`; `out.n`
stays 134, 191, 45, 133 and 37 respectively. Only the blocks below change.
The blocks are `[sum, abs_sum, weighted_sum]`, not error bounds; the errors grade
the raw moved components, not their checksums. Input hashes use sorted compact
Python JSON, UTF-8.
| Case | Components / max relative error | Input SHA-256 | Old → new checksum blocks |
|---|---|---|---|
| `gen0136` | 3 / `5.79439e-15` | `4515a282fe90fd6359b6858d6d7c8301dc3f80f89eb2f6e707b2f2a1d8695052` | `[[91876.89527025135, 92224.64165636596, 3709608.8064747667]]` → `[[91973.71856665419, 92226.07023677968, 3722151.3675662098]]` |
| `gen0287` | 3 / `1.17606e-12` | `e51e3bd2ec6e6c620c88445e04bb4153986ad684128ca811a218da31284c462f` | `[[106623.85073001102, 106758.36789985334, 8192383.812744899]]` → `[[106623.09246265274, 106758.03749782688, 8192286.540092921]]` |
| `gen1623` | 8 / `1.22953e-14` | `857b21820fa862beba1580ea3dd53eb5debdd8553e0b86d9c5790abee8e31467` | `[[937.572243299023, 1479.9961428738736, 24633.179569469605]]` → `[[898.8254877713206, 1424.9679762169394, 23984.775109513852]]` |
| `gen1782` | 3 / `1.9561e-14` | `015844bf6a82125fa52f3b3cbbd7dcf3753397ed5a8a9e725be22de887cb8fff` | `[[77236.60030788192, 87804.80267997787, 4353949.4496201]]` → `[[76718.60999413418, 86553.13132175046, 4319698.866069493]]` |
| `gen2425` | 9 / `3.87624e-14` | `3e08eda805173750cd4cb0f3a6bcf45b221e3853587034ab96ed05a4060e286e` | `[[994.256720147682, 1013.7863198590826, 32902.28326575608]]` → `[[995.7214865508853, 1015.1216311978034, 32929.3849376887]]` |
All five original inputs and all raw binary64 bits were compared with the
retained streams before editing. Every unrelated row and all 86 known-failure
entries stay byte-identical; all 3,182 cases remain selected as 3,096 golden rows
plus 86 known failures.
## Controls, exclusions and provenance
All 52 numerical/scope controls pass. The four new controls distinguish returned
base-offset distance from receiver distance; decode an unchanged inversion result
but reject a moved query field; reject a null/wrong returned kind; and still
reject extension-enabled receivers or wrong derivative values. Existing controls
cover independent closed forms, weights, parameter orientation, clamping,
named-slot aliases and precision stability. Exact-zero closed-form controls may
compare 95 digits of a 100-digit Decimal calculation; captured kernel values
still use strict relative `1e-9`, never a new floor.
`gen2558` remains unapproved: its three `D(1,2)` components have relative errors
about `0.343`, `0.929` and `1.870`. Their small magnitude (about `1e-15`) is not
an excuse to add an absolute floor. No new failure attribution is made. Unsupported
edits, extension, ambiguous knot sides, singular substitutions and actual aliases
remain excluded. No B-rep topology, validity, volume or global fold certificate is
claimed by these local derivative observations.
The raw collector was actually run at
`7a90407a0fe189ebceb551e5df28aaf4e8cc9893`, raw-stream SHA-256
`735d018cce5a61c0ffd3479cf6b2f780182779dcfba91d2f8bb89e20583bb958`.
At pre-edit head `b982cc76604d6c910dfe313064aa4417250f0674`, numerical source
SHA-256 remains
`86565c6a5d30bf5e8efb6e3dcbe8b34b4ecb4683d60982a4e214adb525889bef`.
These identities are preserved, not relabelled as newer executions.
The 39-member executable/data/control archive was read back and hash-verified,
SHA-256 `94b10bb4a4e6f0fe58e9d55aa98416b09ede4ec237b0d99bd5a3e95ee7efa65c`.
It includes complete original inputs/raw values/bits, all full-precision
observations and exclusions, the disagreement, full old/new encodings, controls,
the prior helper versions and the pre-edit identity receipt. Local retained path:
`~/.local/share/opencode/solidcore-cleanup-evidence/pr1914-returned-base-input-oracle-20261108-b982cc766/`.
Projected accounting is 152 supported replacements / 747 moved components and
205 remaining ordinary differences, pending the actual gate. Parent canonical
run 42465643185 ended `action_required` with zero jobs, not success. The PR stays
draft with its correctness and attribution-review holds; no workflow approval,
rerun, review resolution or #2717 implementation is implied.
@@ -0,0 +1,54 @@
# surface.offset_surface: six published named-slot proofs retained (2026-11-08)
Historical excerpt from #1914's published description, read back at
`beb1eb1843a2e988eb42ab169467494395fc6047`. The section below is retained
verbatim so the PR can link it without dropping any published per-case detail.
Its collector revisions, nine controls, counts and archive hash remain historical
measurements, not new executions. This preservation changes no production file,
golden, failure entry or disposition, and resolves no review or CI hold.
## Six additional wrong named-slot results
These are not transferred by case name from an old trace. The current profile-matched collector at `2a187b487004d6d31a40e63e8bf16c97517dee53` reproduces all 3,182 complete input/raw-output records byte for byte (SHA-256 `735d018cce5a61c0ffd3479cf6b2f780182779dcfba91d2f8bb89e20583bb958`). The disposition commit changes only the two expected-data files.
For each additional case, a successful unequal upper-half request returns a named partial overwritten by another partial in the inspected flat write order. Independent 80/160-digit Cox-de Boor/Taylor evaluation from its input net confirms **21 wrong scalar components** under the unchanged relative rule. Request shape alone is not proof: the returned named value must independently disagree. Zero-distance bypasses, failed steps, clamped/extended parameters, nonregular tangents, interior knots and edited/unsupported script forms are excluded.
| Case | Input SHA-256 | Step / output index / wrong named slot |
|---|---|---|
| `gen0033` | `70780a5c41ad46c90f83d5f576df88d61a7714aacf419d3909471911b1361dea` | `step 3, out[67]: D(2,0) overwritten by D(1,1)` |
| `gen0351` | `4b95c449950c93ce3cd46293ea0557556f3b4801767e67d3a3cc326722446cc9` | `step 3, out[73]: D(2,0) overwritten by D(1,1)` |
| `gen0690` | `007587d1c0dd72171f7817ca8b70124a16071d41dbbd6b873a4a253aa5b96ef6` | `step 1, out[62]: D(2,0) overwritten by D(1,1)` |
| `gen1110` | `d7b12a3aa2f98cf9d6204c234379b7a897e18ae42e9d6c67ecddc5cf557d4f67` | `step 1, out[9]: D(2,0) overwritten by D(1,1)` |
| `gen1310` | `e9c4f52efed32ca8c5470cc6cecb59828ab3872d2e25614d5d0ff90aee05d13b` | `step 0, out[8]: D(2,0) overwritten by D(1,1)` |
| `gen1643` | `18c66e2311bd6262fe0f848206b7065ed0b349560a682daab876fffa6c173a41` | `step 1, out[69]: D(2,0) overwritten by D(1,2)` |
The second-order D(2,0)←D(1,1) alias is the same requested-rectangle defect as the third-order aliases, not another numerical correction. All nine oracle controls pass: the five original controls plus a wrong-slot control, a correct-slot negative control, zero-offset exclusion and failed-step exclusion. Full precision observations and code are retained in the verified 11-member evidence archive, SHA-256 `3e8e88ffcba10c6985f9548f13113530a0617c08baaaf6c0bc8f468599cb3aa9`.
<details>
<summary>All 21 new component observations (display rounded; proof uses full precision)</summary>
| Case | Step / index | Named partial / axis | Last writer | Observed | Independent expected (17 significant digits) | Relative error |
|---|---|---|---|---|---|---|
| `gen0033` | `3 / 67` | `D(2,0) / x` | `D(1,1)` | `0.018724977469827681` | `0.94947706571689405` | `0.9802786` |
| `gen0033` | `3 / 68` | `D(2,0) / y` | `D(1,1)` | `-0.00013649133486782865` | `-0.46554174393040504` | `0.9997068` |
| `gen0033` | `3 / 69` | `D(2,0) / z` | `D(1,1)` | `0.03180708635890208` | `2.8042190423216997` | `0.9886574` |
| `gen0351` | `3 / 73` | `D(2,0) / x` | `D(1,1)` | `0.45960729386454163` | `-2.5116317991687791` | `1.182992` |
| `gen0351` | `3 / 74` | `D(2,0) / y` | `D(1,1)` | `0.093772116550005127` | `-0.50950947374403088` | `1.184044` |
| `gen0351` | `3 / 75` | `D(2,0) / z` | `D(1,1)` | `-0.20616503773553352` | `0.8025178110146608` | `1.256898` |
| `gen0351` | `3 / 76` | `D(3,0) / x` | `D(1,2)` | `-0.074509313044287567` | `-6.3156316792075415` | `0.9882024` |
| `gen0351` | `3 / 77` | `D(3,0) / y` | `D(1,2)` | `-0.015739847674017218` | `-1.122898963269378` | `0.9859828` |
| `gen0351` | `3 / 78` | `D(3,0) / z` | `D(1,2)` | `0.032706421316059255` | `2.7671039657496665` | `0.9881803` |
| `gen0690` | `1 / 62` | `D(2,0) / x` | `D(1,1)` | `-0.019052016500627499` | `-0.7775375111457119` | `0.975497` |
| `gen0690` | `1 / 63` | `D(2,0) / y` | `D(1,1)` | `-0.0161844375287322` | `0.44902605842363585` | `1.036043` |
| `gen0690` | `1 / 64` | `D(2,0) / z` | `D(1,1)` | `-0.031707902133859094` | `-2.0671257497366193` | `0.9846609` |
| `gen1110` | `1 / 9` | `D(2,0) / x` | `D(1,1)` | `0.14139133719370992` | `0.010038776196591289` | `0.9290001` |
| `gen1110` | `1 / 10` | `D(2,0) / y` | `D(1,1)` | `0.049876113749574992` | `-0.24302254799445155` | `1.205232` |
| `gen1110` | `1 / 11` | `D(2,0) / z` | `D(1,1)` | `0.088310451664655662` | `0.067595805569719364` | `0.2345662` |
| `gen1310` | `0 / 8` | `D(2,0) / x` | `D(1,1)` | `0.053073370992377245` | `0.092257247937169787` | `0.4247241` |
| `gen1310` | `0 / 9` | `D(2,0) / y` | `D(1,1)` | `-0.10517003905227755` | `-0.035204568600612281` | `0.6652605` |
| `gen1310` | `0 / 10` | `D(2,0) / z` | `D(1,1)` | `-0.087096203244838494` | `0.11288825209382408` | `1.771526` |
| `gen1643` | `1 / 69` | `D(2,0) / x` | `D(1,2)` | `-1.2098301821953668` | `21.441414232216133` | `1.056425` |
| `gen1643` | `1 / 70` | `D(2,0) / y` | `D(1,2)` | `-2.0784483827338414` | `35.121179153073513` | `1.059179` |
| `gen1643` | `1 / 71` | `D(2,0) / z` | `D(1,2)` | `1.5222138413884911` | `-23.137063892159638` | `1.065791` |
</details>
@@ -0,0 +1,101 @@
# surface.offset_surface: two query-prefix named-slot failures (2026-11-08)
Continues #1914's evidence-backed dispositions. `gen0757` and `gen2243` each
return three independently wrong named `D(2,0)` components in the #2717 family.
Their old goldens are **removed, not replaced by wrong values**; both full cases
remain executing through new case-specific #2717 known-failure entries. This
does not implement the requested-grid change or choose refusal versus masking.
## Prefixes, state and independent expected values
Both prefixes start from a nonzero offset of the original direct B-spline.
Extension is disabled. The first operation is an independently decoded query
or returned copy; subsequent prefix operations are evaluations. The default
evidence decoder is not relaxed to accept aliases: only the new private proof
walks the aliased requests, using the inspected ordered write audit.
- `gen0757`: first two of five steps, 66 of 108 raw scalars. Step 0's
`base_offset(d=1.0804625073576302, tol=0.001)` returns a non-null offset kind
`15400`; it **does not replace** the receiver. The receiver distance remains
`0.7822430607713939`. Step 1 asks `(hu,hv,upper)=(2,0,true)` at
`[-5.856672193765806,2.801506594459069]`. With extension disabled,
`OffsetSurface::select_surface` explicitly clamps u to `-2.73069809326579`;
v remains `2.801506594459069`. The expected value is the named jet **at that
clamped point**, not the derivative of a constant continuation outside it.
- `gen2243`: first three of six steps, 63 of 137 scalars. Step 0 is a bounding
query, not an edit. The wrong `D(2,0)` occurs at step 2's `(2,0,true)` request,
at in-domain UV `[-1.858474282224452,3.331215267820798]`, before step 3's swap.
The receiver distance is `0.8689135148110283`. No post-swap value is graded.
For `(2,0,true)`, `D(2,0)` is stored at `2*(hv+1)=2`, then the later `D(1,1)`
branch writes `(hv+1)+1=2` into the same slot. Serialization still names it
`D(2,0)`. Independent 80/160-digit Cox-de Boor/Taylor algebra evaluates
`S + d (Su x Sv)/|Su x Sv|` from original homogeneous control points, weights,
knots and distance. No kernel derivatives or query/copy results supply a
mathematical expected value. Ambiguous interior knots, nonregular tangents,
normal substitution and unsupported orders are excluded by the same checks as
the earlier input-only oracle.
All six named components disagree by far more than the unchanged `1e-9`
relative rule, without an absolute floor. Precision drift is at most
`3.9304004881181306e-77`. The ordered-write defect and independent wrong named
value are both established; **the overwriting expression is not certified as
a correct `D(1,1)`**. The suffix is not graded and is not asserted correct.
| Case | Step / raw index | Axis | Observed | Independent expected (rounded display) | Observed binary64 bits | Relative error |
|---|---|---|---|---|---|---|
| gen0757 | 1 / 63 | x | -2.1616383101165546 | 0.2822558764347538 | `13835422032398768568` | 1.1305749787620736 |
| gen0757 | 1 / 64 | y | -9.08591818283331 | 0.12107242226112541 | `13844676572127350072` | 1.0133252820270687 |
| gen0757 | 1 / 65 | z | -4.69820136261125 | -0.2167761814816701 | `13840347759758655608` | 0.9538597508385238 |
| gen2243 | 2 / 60 | x | 0.22943334526922846 | -0.1462000843762228 | `4597434227716622333` | 1.6372224761168189 |
| gen2243 | 2 / 61 | y | 0.24036374908130256 | -0.14694417604158103 | `4597828037016902861` | 1.611340839054218 |
| gen2243 | 2 / 62 | z | 0.6333616623683682 | 0.05521866007976685 | `4603880034238542298` | 0.9128165417002281 |
## Removed encodings, controls and provenance
These are `[sum, abs_sum, weighted_sum]` checksum blocks of the old complete
goldens, not bounds or replacement values. Common removed-row fields are
`deferred=null`, `error=null`, `ints={}`, `topology=null`. Input hashes are of
full original inputs using sorted compact Python JSON, UTF-8.
| Case | Full original input SHA-256 | Prefix steps / scalars | Removed old golden block / full n |
|---|---|---|---|
| `gen0757` | `a7fff71f532ef0b76a0f9aace5c2d210fa393ff426cb68f470377a44d426a08b` | `2/5 steps, 66/108 scalars` | `[[45835.32261187165, 45951.766035862245, 580801.8107888201]]` / `108` |
| `gen2243` | `b5c1b0a415107215e7fdcd7fc301a26bf021c40add31c08ae54074e3f9e07f4d` | `3/6 steps, 63/137 scalars` | `[[30474.99107836607, 30522.408270029144, 3002299.3746962883]]` / `137` |
All **71 numerical/scope controls pass**. Five new controls bind the actual
prefixes without changing original input/bit records, restore each independently
expected named value and eliminate its wrong-value finding, reject extension,
zero-distance bypasses, bit tampering and an unmodelled edit, exclude failed
evaluations, require the returned offset's unambiguous kind, and show that a
non-aliasing request is not proof of a wrong output. A test initially expected
the wrong error string for the kind rejection; it was corrected to assert the
existing stronger direct-B-spline guard, without changing that guard.
The other three potential-alias candidates stay unapproved: `gen1864` and
`gen2081` are not supported canonical B-spline generators, and `gen2743`'s alias
is after an unmodelled transform. Request shape alone never transfers a case
into the failure registry. No other golden or known-failure entry changes.
The 49-member executable/raw/control archive was read back and hash-verified,
SHA-256 `9169e48e605bddc010862db3b610c420e54372dba1ce9ad46ce73c5b35fccfb7`.
It includes full original inputs/raw values/bits, exact old rows, both decoded
prefixes, full-precision expected values and bounds, the models and all controls.
Local path:
`~/.local/share/opencode/solidcore-cleanup-evidence/pr1914-clamped-alias-prefix-20261108-0d6fda79b/`.
The collector remains attributed to measured head
`7a90407a0fe189ebceb551e5df28aaf4e8cc9893`, stream SHA-256
`735d018cce5a61c0ffd3479cf6b2f780182779dcfba91d2f8bb89e20583bb958`.
The pre-edit head is `0d6fda79b520fb6d2d8d6a2cde89f6f51e74852b`, based on
`3ef79991375bfb6f5cdde7c80584d76589808498`. Numerical source SHA-256 remains
`86565c6a5d30bf5e8efb6e3dcbe8b34b4ecb4683d60982a4e214adb525889bef`.
No fresh collector execution is claimed.
Projected accounting is **164 supported replacements / 800 supported moved
components**, **3,094 golden rows + 88 known failures = all 3,182 cases**, with
**191 ordinary differences**, pending the real gate. These known failures are
not successful deliveries. No production case is cropped or skipped, no
tolerance/floor or geometry source changes, and no body-construction, topology,
validity, volume or global-regularity claim follows. The correctness, historical
attribution-review and canonical-CI holds remain.
@@ -0,0 +1,153 @@
# surface.offset_surface: seven input-only dispositions, unchanged suffixes (2026-11-08)
Continues #1914 with seven supported replacements / 29 moved components. Two
scripts have complete-script proofs; five use decoded prefixes covering **every
moved bit**, with the entire remaining output bit-identical to the four-term
counterfactual. This proves no correctness of the unchanged suffix. No original
input, production execution, case selection, tolerance, absolute floor or known
failure changes. #2717's implementation and refusal-versus-mask contract remain
separate.
## Independent values and scope
The existing independent 80/160-digit Cox-de Boor/Taylor evaluator constructs
`O = S + d (Su x Sv) / |Su x Sv|` from the original control points, weights,
knots and distance, with binary64 inputs converted exactly. It covers all 29
moved scalar components with the unchanged relative `1e-9` rule and no absolute
floor. Maximum relative discrepancy is `7.941402674945828e-14`, maximum relative
precision drift `9.382196956836735e-78`. The counterfactual supplies changed
indices only, never mathematical expected values.
The proof first tries the **complete script**. If that model produces a numerical
disagreement, it returns that disagreement rather than trying a shorter proof.
Only a script outside the complete decoder's scope may use a prefix. A private
copy of the evidence record ends at an explicitly decoded operation boundary;
the complete production case still runs. Full original input identity, raw
output length and value/bit agreement are checked before any prefix is made.
All moved indices must decode as independently graded receiver jets before the
boundary. Every suffix bit, including statuses and payloads, must equal the
counterfactual. Extension-enabled scripts and potential named-slot aliases
**anywhere in the full original script** are refused. The prefix returned-copy
decoder accepts only unambiguous offset kind `15400`. Default decoder callers
still reject incomplete records; no production decoder is changed.
Case boundaries (steps and scalar ranges are zero-based, half-open):
- `gen0294`: **complete**, 7 steps / 139 scalars. The changed `D(0,3)` is at step
2, before the unchanged inversion query. The original revolution generator's
rational full-turn net is independently constructed, with explicit parameter
clamping. No kernel-generated net or inversion result supplies an expected jet.
- `gen1956`: **complete**, 2 steps / 68 scalars. The changed `D(0,3)` is at step 1.
- `gen0046`: steps `[0,4)`, scalars `[0,131)`; moved step 1 precedes trim and a
returned offset in the ungraded 56-scalar suffix.
- `gen0715`: steps `[0,4)`, scalars `[0,140)`; moved step 2 follows a **returned
copy**, not a receiver replacement. Trim/inversion form the ungraded six-scalar
suffix. Eight rather than nine fields move; every actually moved bit is graded.
- `gen1107`: steps `[0,4)`, scalars `[0,101)`; moved step 3 follows copy and
precedes trim in the ungraded five-scalar suffix.
- `gen1871`: steps `[0,4)`, scalars `[0,98)`; moved step 1 precedes trim in the
ungraded five-scalar suffix.
- `gen2606`: steps `[0,2)`, scalars `[0,22)`; moved step 0 precedes transform and
a later evaluation in the ungraded 19-scalar suffix. **No post-transform
derivative or transform-correctness claim** is made.
## Exact old/new encodings and original input identities
Each new row equals the **complete** retained collector encoding, not an encoding
of a cropped case. Common fields stay `deferred=null`, `error=null`, `ints={}`,
`topology=null`. `out.n` stays 187, 139, 146, 106, 103, 68 and 41 respectively.
Only the following `[sum, abs_sum, weighted_sum]` blocks change. These blocks are
checksums, not error bounds; every moved raw scalar is graded separately below.
Input hashes use sorted compact Python JSON, UTF-8, of the full original input.
| Case | Proof steps / raw scalars; unchanged suffix | Components / max relative error | Input SHA-256 | Old → new checksum blocks |
|---|---|---|---|---|
| `gen0046` | `4/6 steps, 131/187 scalars; 56` | 3 / `1.37231e-15` | `dbd153151a9ece86d7374df7e75c3b8fd643697463040a2c9b0aca8d7078246c` | `[[77121.34624082278, 78371.89588151565, 7204413.02628398]]` → `[[77127.56162394208, 78413.58757987301, 7204937.948856801]]` |
| `gen0294` | `7/7 steps, 139/139 scalars; 0` | 3 / `6.07478e-15` | `8e631a42bc095bbf10e999e257af4b43316e25bff9aa5b110989c4598f8075d1` | `[[131571.70347178396, 142646.29819385172, 8950770.303338341]]` → `[[131585.2632002976, 142668.59266738236, 8951797.094917087]]` |
| `gen0715` | `4/6 steps, 140/146 scalars; 6` | 8 / `7.9414e-14` | `3095b349ba413411105bf66000545935862075cf6b359fe85ebb31e65a068ad5` | `[[77220.71046083543, 77311.38053866001, 3702379.153818082]]` → `[[77227.07637822005, 77297.60213367597, 3703184.8790371185]]` |
| `gen1107` | `4/5 steps, 101/106 scalars; 5` | 6 / `6.85615e-15` | `9ea3bc28cade8ee485e49065c45b30dbad3f665b0e575a3b437e41e607b4185f` | `[[46154.69065168403, 46690.47230266395, 1392869.5927645955]]` → `[[46145.861751782475, 46681.36711117941, 1391635.70220002]]` |
| `gen1871` | `4/5 steps, 98/103 scalars; 5` | 3 / `3.18996e-15` | `b1f76deb657f9c21511623f227d889bc3682961414b54382f3dc3db102abd84d` | `[[30452.32264385231, 31097.267325821787, 505666.83287312003]]` → `[[30457.86551369243, 31094.125835654002, 506083.6793920865]]` |
| `gen1956` | `2/2 steps, 68/68 scalars; 0` | 3 / `9.69707e-15` | `025de42ef6f9465e60ab68ca104811b32a4bc5d9bd59e3289a451edb3d5fd2ff` | `[[31752.321348733272, 33425.56012012197, 595083.5858024094]]` → `[[31972.454180961, 33392.31834752314, 609529.5325767717]]` |
| `gen2606` | `2/5 steps, 22/41 scalars; 19` | 3 / `2.37756e-15` | `90597c56d3e9efbe5c336f44a7b90af5dcbe4059a4667c1a442afa29d7ea3c79` | `[[3.6721180340205315, 9.99814166857267, 125.20427053028689]]` → `[[3.8326148961392716, 10.356535523557282, 128.5298394660693]]` |
All 29 observations (display rounded to binary64 precision; decisions and archived
expected values use full decimal precision). Axis 0/1/2 means x/y/z:
| Case | Step / raw index | Partial / axis | Observed | Independent expected | Relative error |
|---|---|---|---|---|---|
| gen0046 | 1 / 71 | (1,2) / 0 | -28.380060620125426 | -28.380060620125423 | 9.451e-17 |
| gen0046 | 1 / 72 | (1,2) / 1 | 6.367558855092271 | 6.367558855092262 | 1.372e-15 |
| gen0046 | 1 / 73 | (1,2) / 2 | 31.966781891409557 | 31.966781891409568 | 3.876e-16 |
| gen0294 | 2 / 74 | (0,3) / 0 | 34458.23563946715 | 34458.2356394673 | 4.177e-15 |
| gen0294 | 2 / 75 | (0,3) / 1 | -3052.6896165881717 | -3052.6896165881813 | 3.111e-15 |
| gen0294 | 2 / 76 | (0,3) / 2 | 38200.35328405772 | 38200.353284057484 | 6.075e-15 |
| gen0715 | 2 / 120 | (0,3) / 0 | -0.0009522569330325635 | -0.000952256933032534 | 3.094e-14 |
| gen0715 | 2 / 121 | (0,3) / 1 | -0.008402533916048624 | -0.008402533916048654 | 3.551e-15 |
| gen0715 | 2 / 122 | (0,3) / 2 | -0.002305644043414734 | -0.0023056440434147387 | 2.071e-15 |
| gen0715 | 2 / 129 | (1,2) / 0 | -0.10535987629543768 | -0.1053598762954376 | 7.396e-16 |
| gen0715 | 2 / 130 | (1,2) / 1 | 0.006463147274761187 | 0.006463147274760673 | 7.941e-14 |
| gen0715 | 2 / 131 | (1,2) / 2 | -0.032374004940173076 | -0.032374004940173215 | 4.273e-15 |
| gen0715 | 2 / 136 | (2,1) / 1 | 2.3190759575134994 | 2.319075957513507 | 3.178e-15 |
| gen0715 | 2 / 137 | (2,1) / 2 | -2.6345573074983024 | -2.634557307498287 | 5.822e-15 |
| gen1107 | 3 / 89 | (1,2) / 0 | 36.912671780944954 | 36.91267178094503 | 2.167e-15 |
| gen1107 | 3 / 90 | (1,2) / 1 | -38.609716645925296 | -38.609716645925225 | 1.802e-15 |
| gen1107 | 3 / 91 | (1,2) / 2 | -39.64200472819031 | -39.642004728190365 | 1.385e-15 |
| gen1107 | 3 / 95 | (2,1) / 0 | 25.86625615297529 | 25.866256152975268 | 8.698e-16 |
| gen1107 | 3 / 96 | (2,1) / 1 | 26.864676213724515 | 26.8646762137247 | 6.856e-15 |
| gen1107 | 3 / 97 | (2,1) / 2 | -16.43263921285802 | -16.43263921285799 | 2.054e-15 |
| gen1871 | 1 / 74 | (1,2) / 0 | 0.8535555622602854 | 0.8535555622602853 | 9.382e-17 |
| gen1871 | 1 / 75 | (1,2) / 1 | -0.6555910077224903 | -0.6555910077224882 | 3.190e-15 |
| gen1871 | 1 / 76 | (1,2) / 2 | 0.8089661538410308 | 0.8089661538410307 | 1.672e-16 |
| gen1956 | 1 / 65 | (0,3) / 0 | -632.537752764933 | -632.5377527649268 | 9.697e-15 |
| gen1956 | 1 / 66 | (0,3) / 1 | 1400.051215352398 | 1400.051215352393 | 3.556e-15 |
| gen1956 | 1 / 67 | (0,3) / 2 | 853.8463232765255 | 853.8463232765242 | 1.402e-15 |
| gen2606 | 0 / 17 | (1,2) / 0 | -0.01668319697464882 | -0.01668319697464886 | 2.378e-15 |
| gen2606 | 0 / 18 | (1,2) / 1 | -0.08226529945828799 | -0.082265299458288 | 2.328e-16 |
| gen2606 | 0 / 19 | (1,2) / 2 | 0.25944535855167694 | 0.25944535855167716 | 8.984e-16 |
The complete suffix digests are SHA-256 of each raw u64 bit pattern encoded
big-endian, concatenated in output order:
| Case | Suffix scalars | Suffix bits SHA-256 |
|---|---|---|
| gen0046 | 56 | `f25d4910341087acdf5c2f761cf5f654286070e583fbe8a04fefea9aeb6b875c` |
| gen0715 | 6 | `7d995755fcb29d284d08fbf128459ab6bd6db711d77d2f29ebb960be9edecafb` |
| gen1107 | 5 | `d0c794b747c8caf28182702f2a59282c854fa40f4a50c1446f8df2f83359e15f` |
| gen1871 | 5 | `e4d7dca9a8dd98ef3dba9038fde2c7b9d591cedc2458b6654a85f29e2a92fc29` |
| gen2606 | 19 | `bb3ae3fb0a4f5fde38e896a01c336fc4c21d8d873090bd768a6b22921de55a1d` |
## Controls, provenance and limits
All **66 numerical/scope controls pass**. The seven added controls prefer the
complete-script proof, preserve the complete original record during prefixing,
reject a moved suffix, changed input/shape or tampered value/bit pair, reject a
wrong prefix value despite an unchanged tail and a potential suffix alias, keep
the default decoder strict, and bind the actual retained `gen0046` before
deliberately moving a suffix field. The 23 numerical disagreements in this scan
remain visible and unapproved; an unchanged suffix is never a correctness waiver.
The 44-member executable/raw/control archive was read back and hash-verified:
`ffbef76485eb2d56b266d1e1dad0a8c785d27f05dfe03023ed629b1439026afe`.
It retains all original inputs/raw values/bits, full-precision observations and
disagreements, exact old/new rows, controls, prefix boundaries/suffix digests and
the previous strict helper sources. Local path:
`~/.local/share/opencode/solidcore-cleanup-evidence/pr1914-unchanged-suffix-input-oracle-20261108-8e07893cf/`.
The raw collector was measured at `7a90407a0fe189ebceb551e5df28aaf4e8cc9893`,
stream SHA-256 `735d018cce5a61c0ffd3479cf6b2f780182779dcfba91d2f8bb89e20583bb958`;
counterfactual stream SHA-256
`56cd28f6ad7ff18c4890469a148c0cfbaf49b70ff241ff9136cfbfee01d84dd1`.
The archive's pre-edit head is `8e07893cff99db33d90e3ed10d6551a87587f032`.
Before applying these seven rows the branch was refreshed onto main
`3ef79991375bfb6f5cdde7c80584d76589808498`, preserving every PR-owned file byte,
at `c8262aea0a1d8c77f4a718e037ef698ee56385eb`. Numerical source SHA-256 stays
`86565c6a5d30bf5e8efb6e3dcbe8b34b4ecb4683d60982a4e214adb525889bef`.
These are not relabelled as new raw-collector measurements.
All other expected rows and all 86 known failures remain unchanged. All 3,182
cases remain selected as 3,096 golden rows plus 86 known failures. Projected
accounting is **164 supported cases / 800 moved components / 193 ordinary
differences**, pending the real full-case gate. This data-only disposition makes
no body-construction, topology, validity, volume, post-edit or global-regularity
claim. No full-suite or canonical-CI success, review resolution or readiness is
implied; the correctness and attribution-review holds remain.
@@ -0,0 +1,116 @@
# surface.offset_surface: two enabled-but-unused extension prefixes (2026-11-08)
Continues #1914 with two supported replacements / 12 moved components. Enabling
extension is not executing an extension. These prefixes never leave the original
direct B-spline domain, and contain no operation that can have created a stored
extension beforehand. This is not evidence for actual extension behavior. All
full original production cases remain executing, with no decoder relaxation,
input change, crop, skip, tolerance/floor change or new compatibility flag.
## State proof and mathematical values
`OffsetSurface::new` starts with `extended_surface=None` and an empty pending
extension (`surface/offset_surface.rs:430-436`). `select_surface` reads the
extension flag only after a point falls outside the natural domain
(`:1304-1348`). Thus an original direct B-spline, with only in-domain point
requests and the audited read-only queries/scalar setters, cannot reach either
the extension or clamping branch. `put_grid` samples only the natural domain;
`put_state` runs that grid on a clone, not a replacement receiver
(`crates/goldens/src/units/surface_offset_surface.rs:836-874`). Copies, type and
knot queries and scalar setters introduce no extended surface. The two accepted
prefixes actually use only `eval` and `state`.
The private proof audits **every** prefix operation and point request, not just
the moved evaluation. Other operations, earlier out-of-domain queries, nested
bases, possible named-slot aliases anywhere in the original script, ambiguous
interior knots, nonregular tangents and normal-substitution/step-off thresholds
remain excluded. It validates full original input identity, output shape and
every value/bit pair against the retained counterfactual, decodes the prefix at
an operation boundary, grades every moved bit, and proves the entire suffix
bit-identical. No suffix-correctness or post-edit claim follows.
Original binary64 inputs are converted exactly. Independent 80/160-digit
Cox-de Boor/Taylor jets differentiate `S + d (Su x Sv)/|Su x Sv|`, without using
kernel jets or a kernel-generated net. All 12 moved components satisfy strict
relative `1e-9` without an absolute floor. Maximum relative discrepancy is
`8.805332234651928e-14`; maximum relative precision drift is
`4.472617148231448e-77`.
- `gen2007`: first **1/3 steps, 32/36 scalars**. The changed equal-order
upper-half evaluation is at `[0.9822670381287524,0.6137966653036512]` in original
domain `[0,0]–[1,1]`, distance `0.8570806631900703`. The four-scalar suffix
contains swap and equality; no post-swap/equality correctness is claimed.
Suffix SHA-256: `19bc6bb623ffec75dcd46d274dff9c601467c2db29de1ce040b5dae0eca63c9c`.
- `gen2248`: first **2/7 steps, 74/308 scalars**. After the original state query,
the changed evaluation is at `[-1.3714566043894583,-0.6961094625742988]` in
original domain `[-1.9135790103933323,-0.8312686221256724]–[1.3829268584332177,-0.2906319839201781]`,
distance `-27.14016406633157`. Split, trim, copy, reverse and state form the
**234-scalar ungraded suffix**, all unchanged bits. Suffix SHA-256:
`16665a339beb0204f724908b09b01bbd38d7dde4273d04406f89552667d69ee8`.
Suffix digests concatenate big-endian u64 binary64 bit patterns in output order.
## Complete original encodings and observations
New rows equal the complete original collector encoding, not a cropped record.
Common fields stay `deferred=null`, `error=null`, `ints={}`, `topology=null`;
`out.n` stays **36 / 308**. For `gen2248`, the complete second checksum block is
unchanged too. Blocks are `[sum, abs_sum, weighted_sum]`, not error bounds.
Input hashes use sorted compact Python JSON, UTF-8, of the full original input.
| Case | Components / max relative error | Original input SHA-256 | Old → new checksum blocks |
|---|---|---|---|
| `gen2007` | 9 / `1.08547e-14` | `40979f91a5c8143e5b0b2e560902302e5bc30d21b034c5bc5e5bee592e922ac6` | `[[8385.129761675184, 10208.861909515392, 240531.36113004576]]` → `[[7433.183654517214, 8963.545179952707, 224246.08082010786]]` |
| `gen2248` | 3 / `8.80533e-14` | `a8b8b0afe101dabe69c50ee63ee7897ba829c8c8873bd9089fde1faf5ce3d839` | `[[156372.75134309038, 252429.00380531867, 19263689.92973941], [40312.70837088957, 63077.20645060704, 274696.5340730896]]` → `[[155970.61055021366, 252143.7086417839, 19234501.757323023], [40312.70837088957, 63077.20645060704, 274696.5340730896]]` |
All moved observations (display rounded; decisions use archived full precision):
| Case / raw index | Partial / axis | Observed | Independent expected | Relative error |
|---|---|---|---|---|
| gen2007 / 11 | (0,3) / x | 5.840236929270969 | 5.8402369292709695 | 2.153e-16 |
| gen2007 / 12 | (0,3) / y | -5.829472830029468 | -5.829472830029531 | 1.085e-14 |
| gen2007 / 13 | (0,3) / z | 4.353237972167417 | 4.3532379721674035 | 2.990e-15 |
| gen2007 / 20 | (1,2) / x | 59.72664999179381 | 59.72664999179384 | 4.863e-16 |
| gen2007 / 21 | (1,2) / y | -30.088202301598827 | -30.088202301598802 | 8.212e-16 |
| gen2007 / 22 | (1,2) / z | 36.106361567067125 | 36.10636156706718 | 1.572e-15 |
| gen2007 / 26 | (2,1) / x | 366.6287166271855 | 366.6287166271859 | 1.137e-15 |
| gen2007 / 27 | (2,1) / y | -58.98860905290834 | -58.988609052908714 | 6.378e-15 |
| gen2007 / 28 | (2,1) / z | 261.43275620586513 | 261.43275620586473 | 1.606e-15 |
| gen2248 / 71 | (1,2) / x | -38.71656614072562 | -38.71656614072553 | 2.136e-15 |
| gen2248 / 72 | (1,2) / y | -3.1621556721435087 | -3.1621556721432302 | 8.805e-14 |
| gen2248 / 73 | (1,2) / z | -17.167331184126198 | -17.167331184125945 | 1.462e-14 |
## Controls, preserved evidence and limits
All **78 numerical/scope controls pass**. Seven new controls establish the
enabled-but-unused flag on an independent affine-plane closed form; reject
out-of-domain evaluations and earlier out-of-domain normal queries; allow only
bit-identical suffixes after every moved field; reject a wrong jet despite an
unused flag; keep the previous stricter model unchanged; reject aliases,
tampered bits and changed full inputs; and bind both actual retained prefixes
before deliberately moving a suffix field. `gen2690` independently disagrees
and remains unapproved. Actual extensions and other unsupported scripts stay red.
The **56-member archive** was read back and hash-verified, SHA-256
`b2b23e145751baaa363d55a718475028b67f24f513de9dce23d9884d297e1064`.
It retains executable models/controls, complete original inputs/raw values/bits,
full-precision observations/disagreements, old/new encodings, prefix/suffix
identities and the inspected production source snapshots. Local path:
`~/.local/share/opencode/solidcore-cleanup-evidence/pr1914-unused-extension-20261108-beb1eb184/`.
Pre-edit head: `beb1eb1843a2e988eb42ab169467494395fc6047`, based on
`3ef79991375bfb6f5cdde7c80584d76589808498`. The collector remains attributed to
its actual measured `7a90407a0fe189ebceb551e5df28aaf4e8cc9893` head, raw SHA-256
`735d018cce5a61c0ffd3479cf6b2f780182779dcfba91d2f8bb89e20583bb958`.
Numerical source SHA-256 stays
`86565c6a5d30bf5e8efb6e3dcbe8b34b4ecb4683d60982a4e214adb525889bef`.
No new collector execution is claimed.
Only these two complete expected rows change; every other row and all 88 known
failures remain unchanged. Projected accounting is **166 supported cases / 812
moved components**, all **3,182 cases = 3,094 golden rows + 88 known failures**,
and **189 ordinary differences**, pending the actual gate. This proves no actual
extension, suffix correctness, B-rep, topology, validity, volume or global
regularity result. Correctness/review holds remain. Parent canonical run
42475855876 stopped at `action_required`, zero jobs, not success; no approval,
rerun, review resolution or readiness is implied.
@@ -0,0 +1,15 @@
Updates: WR-160
#### WR-160 (update, 2026-10-31). The four third-order terms are corrected by default
- **Location:** `source/SMLib/src/SmOffsetSurface.cpp:1468`, `:1479`, `:1482` and `:1491`, `SmOffsetSurface::EvaluatePlainOrSimple` (the pinned v1.0.1 source; the same four terms in `crates/solidcore/src/surface/offset_surface.rs`).
- **What changed:** solidcore corrects exactly four third-order terms unconditionally:
1. `Cuuv`'s `Buuv x Buv` coefficient is `1.0`, not upstream's `3.0` (the derivative of `Cuu` gives `2 - 1 = 1`; the two cross-product terms cancel one sign).
2. `Cuvv`'s `Buvv x Buv` coefficient is `-1.0`, not upstream's `3.0` (the derivative of `Cvv` gives `1 - 2 = -1`).
3. `Duvv` adds `Buvv` (`d(1, 2)`), not `Buuv` (`d(2, 1)`).
4. `Dvvv` adds `Bvvv` (`d(0, 3)`), not `Buuv` (`d(2, 1)`).
The correction can change `Duuv`, `Duvv` and `Dvvv`; downstream effects are unmeasured. Sampled bits for orders 0..2 and `Duuu` are retained in a regression, not a universal bit-identity proof.
- **Evidence:** a new focused unit test uses the biquadratic Bezier base `B(u, v) = (u + u^2 v, v + u v^2, u v)` on `[0, 1]^2`, whose `Bu x Bv = (1 + uv) q` with `q = (-v, -u, 1 + 3uv)` gives both `Buuv x Buv` and `Buvv x Buv` non-zero (a surface of revolution alone cannot reach the `Cuvv` coefficient). The test builds it through the public `BSplineSurface::from_data` (quadratic 3x3 clamped net), constructs a public `OffsetSurface::new` and calls the public `OffsetSurface::evaluate(uv, 3, 3, flags)` with `flags.only_upper_half = true` at `(0.25, 0.5)` and `(0.5, 0.25)` with `d = +0.125` and `-0.125`. This requests total order 3 in the upper triangle of a 4x4 matrix; a full rectangular `(3, 3)` request exceeds the existing derivative bound and is not claimed. The oracle is the independently derived closed-form `B + d q / sqrt(L)`, `L = 1 + u^2 + v^2 + 6uv + 9u^2v^2`, checked to `1e-10` relative without an absolute floor. Before the four corrections the test failed on `Suuv.x` (`1.850528767371623` vs the closed-form `1.740100020590324` at `d = 0.125`, `uv = (0.25, 0.5)`); after them it passes, and a second test retains pre-fix default bits for orders 0..2 and `Suuu` at those four samples.
- **Still unfixed:** `WR-162` (the upper-half, unequal-order second-derivative slot write) is separate and remains. The fix makes no claim about `SM_API` higher derivatives or an end-to-end `CrvOnSurf` improvement; an in-kernel `CrvOnSurf` evaluator that reads these third partials can consume the corrected values, but no production case that does was measured.
- **Default-path regression (2026-11-04):** test-only commit `6cb0f2987ed9336e0a385de522258d6266b546c0` compiled and failed with exit 101 on `Suuv.x = 1.850528767371623` versus the closed form `1.740100020590324`. Fix `8ec4825280f7b2f9a41fc4183d609f8a080146e9` passed all 23 offset tests, including the default-kernel oracle and four-sample bit controls, strict kernel Clippy, wasm and formatting. Individual one-term mutation runs were not performed.
- **Native diagnostic:** at `8ec4825`, the existing `surface.offset_surface` runner observed 3,182 cases: 2,663 passed, 519 failed, zero deferred. In `third_derivative_outputs`, all ten mismatches map to the corrected `Duvv` or `Dvvv` slots; both original WR-160/161 records name this confirmed fixture. It alone is parked with `cpp_defect = "WR-161"`, whose explanation names both defects. The other 518 failures remain unparked, including `upper_half_slot_overwrite`; see `plan/findings/surface.offset_surface--default-third-derivatives-diagnostic-attribution.md`. No native parity or complete attribution is claimed.
- **Reference limitation:** headers in the preserved reference copies match all 492 SMLib/SM_API blobs at pinned `3fd5b9548d19aa8c12c29bc9637a96d42a06f8a5`; shared `cpp-v101` library hashes match preserved historical build receipts. This is source/hash provenance, not a reproducible-build proof. The full `curve.crv_on_surf` run timed out without a summary; it is not a pass or evidence of an end-to-end improvement.
@@ -0,0 +1,432 @@
Updates: WR-160
#### WR-160 (update, 2026-11-04): confirmed per-case attribution
- **Confirmed:** yes, for the listed cases and measured components, conditional on traced base derivatives and the local formula.
- **Location:** `source/SMLib/src/SmOffsetSurface.cpp`, `SmOffsetSurface::EvaluatePlainOrSimple`; see existing WR-160 record.
- **Algebra:** Differentiating the cross product gives Cuuv coefficient 1 rather than 3 for Buuv × Buv.
- **Evidence and scope:** At source commit `8ec4825280f7b2f9a41fc4183d609f8a080146e9`, the native diagnostic reported 3,182 cases, 2,663 pass and 519 fail; the 518 remaining cases below contain 2,206 mismatches. The legacy counterfactual reverts all four terms as a bundle: full outputs, statuses and lengths agree with C++ at the unchanged 1e-9 relative comparator for all 518. This is not a single-term isolation or proof of C++ internals. The Rust runs used their own inputs, not C++ outputs. Pinned C++ source/header blobs match `3fd5b9548d19aa8c12c29bc9637a96d42a06f8a5`; native library hashes match historical build receipts, not a reproducible-build proof. No current integrated-head native pass is claimed. Original runner inputs are reconstructed at the source commit using `crates/difftest/src/units/surface_offset_surface.rs` and the fixture or generator seed indicated per case, with the canonical input hash as a check.
The independent high-precision local jets and this algebra, together with the bundle counterfactual, support a C++ defect for each listed case within the maintainer-authorized scope. Geometry providers, clamping, extensions and outer wrappers are not globally proved. See `plan/findings/surface.offset_surface--default-third-derivatives-diagnostic-attribution--addendum-2026-11-04-per-case-four-term-attribution.md`.
### gen0000
Source: `generated:seed=7714667220713741961`; canonical input SHA-256: `d86adf0182edf66bca08bb424017b4636e5e3d8f620f594de13d1d51274a2a33`.
Steps: `[{"ivl":null,"op":"knots","param":0},{"hu":2,"hv":1,"nzt":false,"op":"eval","ul":true,"upper":false,"uv":[2.3355856564636195,0.8434519827610206],"via":true,"vl":true},{"op":"normal","ul":true,"uv":[-1.214248178557854,0.75],"via":true,"vl":true}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["2.3355856564636195","0.8434519827610206"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":4604929028410531046,"effective_uv_bits":[4612441690146088124,4605772359615811293],"hod":3,"used_extension":false},"simple":true,"step":1,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[24]`; 1; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-12.227574803897136` (`0xc0287484af48437d`) | `-12.227574803897136` (`0xc0287484af48437d`) | `-11.67420743125171` (`0xc0275931b767e47d`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-11.674207431251701923447684752528402870886345922023930357967114578427701557975186","observed":"-11.6742074312517107870235122391022741794586181640625","relative_error":"7.5924433240400453895755513524838710025577317312992036246181046299818049739560316E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[25]`; 1; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `12.444954109737397` (`0x4028e3d1066b15f9`) | `12.444954109737397` (`0x4028e3d1066b15f9`) | `12.419601413286166` (`0x4028d6d5ff16d6c4`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"12.419601413286166905095879980692937743458380817341049670708281535729131705305772","observed":"12.41960141328616629152747918851673603057861328125","relative_error":"4.9403228040458421501098763621267610191349025267442921687652739272436936516377650E-17"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[26]`; 1; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `2.0276398940869482` (`0x4000389b43c958c6`) | `2.0276398940869482` (`0x4000389b43c958c6`) | `1.8561025277274346` (`0x3ffdb2989069cbd6`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"1.8561025277274457808847821069222649188271620657573865776262319423109172263609532","observed":"1.856102527727434559068342423415742814540863037109375","relative_error":"6.0459033227130775078996338411729040342671175233588766961323942288598855299553108E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen0188
Source: `generated:seed=7714667220713742149`; canonical input SHA-256: `5e83f9202e9fb09597713cd3a70572dfd25075fcb041ba89d15c5e48f8776b12`.
Steps: `[{"op":"copy"},{"op":"normal","ul":true,"uv":[1.5691969346358605,0.4392693148918997],"via":false,"vl":true},{"op":"eval_pt","uv":[1.6211505359860625,0.43432097181076346],"via":false},{"op":"normal","ul":true,"uv":[1.788472050253253,-0.9363306057511785],"via":false,"vl":true},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[0.9330594195962286,0.0],"via":false,"vl":true}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"1","effective_uv_decimal":["1.0817446888166975","0.0"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":4471350808576507456,"effective_uv_bits":[4607550564150111804,0],"hod":3,"used_extension":false},"simple":false,"step":4,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[85]`; 4; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `0.09948975123201027` (`0x3fb978290bd4230d`) | `0.09948975123201027` (`0x3fb978290bd4230d`) | `0.09948975296163098` (`0x3fb978291341e000`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.099489752961630983918364570622987197304678328251607194338796804074889057333065110","observed":"0.0994897529616309839184395968914031982421875","relative_error":"7.5411051070692090090684339111909367177086197349175452969473722323333592682274881E-22"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen0266
Source: `generated:seed=7714667220713742227`; canonical input SHA-256: `984b9941277afdeb2f272c579c34dd04817a5f861056c20be69b912946ee693a`.
Steps: `[{"hu":2,"hv":1,"nzt":false,"op":"eval","ul":false,"upper":false,"uv":[0.1368337682830849,3.8675261073002405],"via":false,"vl":false},{"dom":[0.0,2.479152079378988,1.0,4.902819980658611],"expand":true,"op":"bbox","want":[false,true,false]},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":true,"uv":[0.14306597911533814,4.902819980658611],"via":false,"vl":true},{"op":"transform","origin":[-0.05455171692083516,1.2103679507128482,-1.5556776964513093],"scale":[1e-06,1e-06,1e-06],"x":[-0.748167294862878,-0.06001569071144388,0.6607902963618577],"y":[-0.18131727502142322,-0.967982329392702,-0.1735922111221694]}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["0.1368337682830849","3.8675261073002405"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15020,"distance_bits":4472155641099042081,"effective_uv_bits":[4594097976353346640,4615891313367858922],"hod":3,"used_extension":false},"simple":true,"step":0,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[19]`; 0; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `8.232316805511756` (`0x402076f23a73f7e7`) | `8.232316805511756` (`0x402076f23a73f7e7`) | `8.232316773426959` (`0x402076f239605cb0`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"8.2323167734269588891038523554338871612630692415820879185577603224735725405808274","observed":"8.232316773426958889103843830525875091552734375","relative_error":"1.0355417857081501988043106060875015783271648607593020350094693536878565991983788E-24"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen0693
Source: `generated:seed=7714667220713742654`; canonical input SHA-256: `09f41f3cf32a195ae9340c98529931e9695223d011e272821c2ff36b6ab0ea12`.
Steps: `[{"op":"state"},{"hu":2,"hv":1,"op":"eval_simple","ul":false,"upper":false,"uv":[0.25,2.2714559620354917],"via":false,"vl":false},{"hu":0,"hv":0,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[0.04396972125911869,2.4800487823977804],"via":true,"vl":true},{"op":"eval_pt","uv":[0.8378504980348408,-3.8775965970128015],"via":false},{"dom":[0.0,1.4218881183066046,1.0,4.994600456588541],"expand":true,"op":"bbox","want":[true,false,false]},{"dom":[0.0,1.4218881183066046,1.0,4.994600456588541],"expand":true,"op":"bbox","want":[true,true,false]}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["0.25","2.2714559620354917"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":13827477389403381660,"effective_uv_bits":[4598175219545276416,4612297282912123174],"hod":3,"used_extension":false},"simple":true,"step":1,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[71]`; 1; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-0.0945933091700395` (`0xbfb83744614e44c0`) | `-0.0945933091700395` (`0xbfb83744614e44c0`) | `-0.5418760696489624` (`0xbfe1570c7bb412f0`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.54187606964896209782551952938641205900013574124177905436843330111738114392314500","observed":"-0.5418760696489623995830697822384536266326904296875","relative_error":"5.5687557940755034392577385062935373001312845590477668638023494816141176537990166E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[72]`; 1; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `3.351061564844372` (`0x400acef95d9f1d00`) | `3.351061564844372` (`0x400acef95d9f1d00`) | `3.4886507237847235` (`0x400be8c1b5ee93b2`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"3.4886507237847228905904671530765907809639606607416446936756710007715363116090550","observed":"3.48865072378472351743994295247830450534820556640625","relative_error":"1.7968249774209357904638078153859893880467840106352835668789187777421965450276448E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[73]`; 1; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `3.2089936762114855` (`0x4009ac04e0633172`) | `3.2089936762114855` (`0x4009ac04e0633172`) | `2.893475439687791` (`0x400725d67389e801`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"2.8934754396877916644739801509802835808138920064080410286652481924484771227084132","observed":"2.893475439687791084253376538981683552265167236328125","relative_error":"2.0052722606645137845248322210573243238743434433824170864553736300606240870971096E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen0704
Source: `generated:seed=7714667220713742665`; canonical input SHA-256: `2588ffe7b51755622083174036545aa52f23abffb20612e9cf11b4c195308a4c`.
Steps: `[{"op":"state"},{"op":"eq","other":{"allow":false,"base":{"bspline":{"form":9,"net":[[[-1.5906605258319162,1.0598152136993677,-1.3157291935997713,-1.7976931348623157e+308],[-1.3023252228906999,1.1134112882709148,-0.8982446305925211,-1.7976931348623157e+308],[-1.1272096812759829,1.148592060415123,-0.35964248736507665,-1.7976931348623157e+308],[-1.0003777618411274,1.1759194552485852,0.2306113764999571,-1.7976931348623157e+308]],[[-1.707407571677413,1.5473525708378644,-1.2863151934684094,-1.7976931348623157e+308],[-1.4134124698261006,1.601869217113381,-0.8748852373645151,-1.7976931348623157e+308],[-1.2233356581041905,1.6394834541447525,-0.3522880106920381,-1.7976931348623157e+308],[-1.0775757695006385,1.6698895012602288,0.2177175343518323,-1.7976931348623157e+308]],[[-1.9593650662845123,2.012897819212761,-1.1122589313977542,-1.7976931348623157e+308],[-1.6356040258261915,2.0722559238614404,-0.7326712828100117,-1.7976931348623157e+308],[-1.3668431027837922,2.1226682068276967,-0.2942468988750464,-1.7976931348623157e+308],[-1.121537492295005,2.1692654607818627,0.16926895907927736,-1.7976931348623157e+308]],[[-2.2828844635026666,2.466803455708791,-0.8616488559410298,-1.7976931348623157e+308],[-1.9165989939721473,2.5330781994029827,-0.5275519934945618,-1.7976931348623157e+308],[-1.5354278104930332,2.601774118702904,-0.20937922090820743,-1.7976931348623157e+308],[-1.14790847559803,2.6715025708999853,0.1020025751793832,-1.7976931348623157e+308]],[[-2.5870357200343244,2.923859338805046,-0.6317579756656828,-1.7976931348623157e+308],[-2.18167889114134,2.9964890764550383,-0.3394579554528663,-1.7976931348623157e+308],[-1.6972253878903518,3.0819839638124122,-0.1317721199854112,-1.7976931348623157e+308],[-1.1790403708502462,3.1729653141377416,0.03982920797702945,-1.7976931348623157e+308]]],"oob":false,"p":1,"q":2,"u":[2.358943599315694,2.358943599315694,2.689492632873705,3.988133272280419,4.84847779985509,5.962416397517994,5.962416397517994],"v":[0.0,0.0,0.0,0.006640290215333633,1.0,1.0,1.0]}},"d":0.31334513864035585,"owns":false,"sing":0}},{"hu":2,"hv":1,"op":"eval_simple","ul":true,"upper":false,"uv":[0.23897749219580744,4.1273888315602125],"via":true,"vl":false},{"dom":[0.0,1.150223655157201,1.0,4.1570437694580455],"expand":false,"op":"bbox","want":[false,true,false]},{"hu":2,"hv":1,"op":"eval_simple","ul":false,"upper":false,"uv":[0.7934594627202374,2.6921834621193073],"via":true,"vl":true},{"ivl":[0.5408239619845675,1.2500215336607046],"op":"knots","param":0}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["0.23897749219580744","4.1273888315602125"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15020,"distance_bits":13823981171229410796,"effective_uv_bits":[4597778091848959216,4616333045128344834],"hod":3,"used_extension":false},"simple":true,"step":2,"upper":false}`.
Trace: `{"call":"1","effective_uv_decimal":["0.7934594627202374","2.6921834621193073"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15020,"distance_bits":13823981171229410796,"effective_uv_bits":[4605322067026557326,4613244677018424170],"hod":3,"used_extension":false},"simple":true,"step":4,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[74]`; 2; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-0.33396465707019757` (`0xbfd55fad4c08ba05`) | `-0.33396465707019757` (`0xbfd55fad4c08ba05`) | `0.03794139253368374` (`0x3fa36d0de03198fa`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.037941392533683562206226558594557359644496805360231560332647254337718586481972756","observed":"0.03794139253368374042896249420664389617741107940673828125","relative_error":"4.6973166780156761732352465411100623442486039674220830888248804197656726821845867E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[75]`; 2; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `0.030361924414052943` (`0x3f9f1732419ba100`) | `0.030361924414052943` (`0x3f9f1732419ba100`) | `-0.3143813116203811` (`0xbfd41ed2caf88510`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.31438131162038054311087393435054414796915487541309386592892605544561063430311270","observed":"-0.31438131162038107646594653488136827945709228515625","relative_error":"1.6965228303537425110730540964403644724501111331110747148308218943941773515227386E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[76]`; 2; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `0.010310147895697508` (`0x3f851d7ca03b4700`) | `0.010310147895697508` (`0x3f851d7ca03b4700`) | `-0.14278456507835618` (`0xbfc246c3beb14bba`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.14278456507835580034739478870026648385920850657036025895978839985671004915140614","observed":"-0.142784565078356184830710162714240141212940216064453125","relative_error":"2.6927512449473811080709728145205988528840698553733677085909736019843807766650746E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[109]`; 4; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-0.4667341580887969` (`0xbfdddef8f23ab7f0`) | `-0.4667341580887969` (`0xbfdddef8f23ab7f0`) | `0.1394536543026621` (`0x3fc1d99e0a44d0d8`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.13945365430266221311179313804401217813256478308492967514492805987106258671215225","observed":"0.1394536543026621000507248027133755385875701904296875","relative_error":"8.1074295901883917934555748783047968525232691236039720631249850426314465310074799E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[110]`; 4; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-1.7815827067506433` (`0xbffc815cde49cf8d`) | `-1.7815827067506433` (`0xbffc815cde49cf8d`) | `-2.0853264829068507` (`0xc000aebfa6ac8a80`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-2.0853264829068500484027431606893283716969543259781724262093124876604248108625148","observed":"-2.08532648290685074243810959160327911376953125","relative_error":"3.3281856444054748664625468868312812220264473137570551627214707024726672355925752E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[111]`; 4; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `1.4367520623094876` (`0x3ff6fcefbb0146e0`) | `1.4367520623094876` (`0x3ff6fcefbb0146e0`) | `1.7383163587384411` (`0x3ffbd024d06e2271`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"1.7383163587384412424320042471037313233055330393129155129690131550159868858789524","observed":"1.7383163587384411474801026997738517820835113525390625","relative_error":"5.4622912032099779915310551516506331085416963544722617915414206196662123617033316E-17"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen0742
Source: `generated:seed=7714667220713742703`; canonical input SHA-256: `b99ba94e058200def521ec5e716b96235f2cff52586710bd9d6d1551f9d680fd`.
Steps: `[{"op":"state"},{"hu":0,"hv":0,"nzt":false,"op":"eval","ul":true,"upper":false,"uv":[0.0,0.6378214581648076],"via":false,"vl":true},{"ivl":[0.2893175885655095,0.739441713316929],"op":"knots","param":0},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[0.0,0.6715971687278237],"via":false,"vl":true}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"1","effective_uv_decimal":["0.0","0.6715971687278237"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15020,"distance_bits":13823629838839249400,"effective_uv_bits":[0,4604224429062927830],"hod":3,"used_extension":false},"simple":false,"step":3,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[78]`; 3; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `0.723555051529345` (`0x3fe7275cec65927c`) | `0.723555051529345` (`0x3fe7275cec65927c`) | `0.6352378750290085` (`0x3fe453de614dc399`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.63523787502900862152672612954286766687539869001297299493679780241524825352221706","observed":"0.63523787502900852519616137215052731335163116455078125","relative_error":"1.5164486965295218224085199718669516121894695284649664324682229031546660195486936E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[79]`; 3; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `0.5432830670949382` (`0x3fe162932bb49630`) | `0.5432830670949382` (`0x3fe162932bb49630`) | `0.5822927839454307` (`0x3fe2a22479f7c1e5`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.58229278394542984671859783075516947068443479654608416911236285667797098292759548","observed":"0.58229278394543071417643886888981796801090240478515625","relative_error":"1.4897279598083221985032488238020051735816286582060262990451782182240040186179816E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[80]`; 3; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `-1.512672525761659` (`0xbff833e81b3b43c2`) | `-1.512672525761659` (`0xbff833e81b3b43c2`) | `-1.7409715936002073` (`0xbffbdb05079c7240`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-1.7409715936002070460655839477690413601472867403737045755456159231504172002706384","observed":"-1.7409715936002072567134746350347995758056640625","relative_error":"1.2099444440196791577608594934333901565207774124132088405507584489306399479466860E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen0745
Source: `generated:seed=7714667220713742706`; canonical input SHA-256: `e2a1f4cb563f32b2d7c0cb89ead0526110bf06ec7f9d5a686ce24881920badba`.
Steps: `[{"op":"state"},{"op":"eval_pt","uv":[4.284317350996803,-0.38652981573177025],"via":false},{"dom":[0.7260745001764879,0.0,4.284317350996803,1.0],"expand":true,"op":"bbox","want":[true,true,true]},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[4.284317350996803,0.8819094785161189],"via":false,"vl":true},{"dom":[0.7260745001764879,0.0,4.284317350996803,1.0],"guess":[0.8958611613416056,0.9632592919213674],"op":"step_inv","p":[2.8573485677847295,1.4451047064082818,-0.07978327764237036],"tol":1e-06},{"op":"state"}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["4.284317350996803","0.8819094785161189"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":4579800855402217472,"effective_uv_bits":[4616509730933759442,4606118753942915819],"hod":3,"used_extension":false},"simple":false,"step":3,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[111]`; 3; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `59.886507148241996` (`0x404df17910f4af4f`) | `59.886507148241996` (`0x404df17910f4af4f`) | `59.33699329683165` (`0x404dab2298aa6e7c`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"59.336993296831650634433599676348525640219546125659482506811126362601391874024962","observed":"59.336993296831650468448060564696788787841796875","relative_error":"2.7973365330682280506147618270741043526572581568826648973095267754862998653226993E-18"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[112]`; 3; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-6.16721173615604` (`0xc018ab398da930b7`) | `-6.16721173615604` (`0xc018ab398da930b7`) | `-5.977981605429894` (`0xc017e974028da4d6`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-5.9779816054299001395511229859434007171080529909280810066572424935857352692575142","observed":"-5.9779816054298944294487228034995496273040771484375","relative_error":"9.5518902149111045273165824324818440471115183692252450382718728591138413803218697E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[113]`; 3; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `-21.625434325576553` (`0xc035a01c76c625a9`) | `-21.625434325576553` (`0xc035a01c76c625a9`) | `-22.215718593299318` (`0xc0363739556f5c15`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-22.215718593299316427800886632957575555082579597322209986946780781298834818437256","observed":"-22.215718593299317973333018017001450061798095703125","relative_error":"6.9569306295147512122623869365767742959730807419938685360454309918901424099363429E-17"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen0794
Source: `generated:seed=7714667220713742755`; canonical input SHA-256: `5c1bcec6a01982e65601656e0b8e2f6ae088d0464027fd41e279f7086f3e0967`.
Steps: `[{"op":"state"},{"hu":2,"hv":1,"nzt":false,"op":"eval","ul":true,"upper":false,"uv":[3.0184314340650307,5.995624031994012],"via":true,"vl":true},{"dom":[2.52101918518958,2.163293054723291,6.289804465699969,5.995624031994012],"guess":null,"op":"step_inv","p":[2.294840929560758,0.7927965247795279,0.05590829177138401],"tol":0.3203735544424991},{"hu":1,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[6.289804465699969,-2.8935952049319438],"via":false,"vl":false},{"op":"state"}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["3.0184314340650307","5.995624031994012"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":13829665680373935344,"effective_uv_bits":[4613979322140866740,4618436490966473360],"hod":3,"used_extension":false},"simple":true,"step":1,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[71]`; 1; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-0.5001132677184879` (`0xbfe000ed8a24b0ee`) | `-0.5001132677184879` (`0xbfe000ed8a24b0ee`) | `-0.15908695644430484` (`0xbfc45cf61d9300ed`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.15908695644430540834733406383606128947699077108419430807493531519329427648662252","observed":"-0.1590869564443048445046002825620234943926334381103515625","relative_error":"3.5442423840616321684013620144277886860165767430448347722288550189894844562338178E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[72]`; 1; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-0.8588165559660194` (`0xbfeb7b6cdba465a3`) | `-0.8588165559660194` (`0xbfeb7b6cdba465a3`) | `-0.6595753406248082` (`0xbfe51b3dbea7695c`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.65957534062480925159498802205458715275584194298471111689872213907854388412390368","observed":"-0.659575340624808159617487035575322806835174560546875","relative_error":"1.6555766016844409114647790736692662452687791004395372980250237218512432246764201E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[73]`; 1; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `0.15677814104732257` (`0x3fc4114e5e435188`) | `0.15677814104732257` (`0x3fc4114e5e435188`) | `-0.16716401607935225` (`0xbfc565a167107db3`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.16716401607935175647158978063415249897122446908861378675818535192190919646201121","observed":"-0.1671640160793522456028625811086385510861873626708984375","relative_error":"2.9260560033942075872539894960066381859878676613355979232994645078207418648626213E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen0985
Source: `generated:seed=7714667220713742946`; canonical input SHA-256: `e15e88940b8e33ddf1322799d8301d59f01f439dd3db8a36e9a1155cbf8df36b`.
Steps: `[{"op":"state"},{"hu":2,"hv":1,"op":"eval_simple","ul":false,"upper":false,"uv":[0.762311906293362,-1.9490172414442608],"via":false,"vl":false}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["0.762311906293362","-1.9490172414442608"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15020,"distance_bits":4605787037843772908,"effective_uv_bits":[4605041514779522171,13834828449349729765],"hod":3,"used_extension":false},"simple":true,"step":1,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[71]`; 1; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `1.1566559421087441` (`0x3ff281a9a9414c4a`) | `1.1566559421087441` (`0x3ff281a9a9414c4a`) | `0.01708054646438084` (`0x3f917d9011d96b80`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.01708054646438154473072269607135364852377016108493863882788112757973984005556778","observed":"0.017080546464380841342745043220929801464080810546875","relative_error":"4.1180648354526683629391271493792063377292348715984774033615528073815178976718988E-14"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[72]`; 1; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-10.336730531309902` (`0xc024ac67f1b714db`) | `-10.336730531309902` (`0xc024ac67f1b714db`) | `0.6917287915751178` (`0x3fe622a46b308910`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.69172879157511979206572319538322316814184668212739460705383630304406781631870604","observed":"0.6917287915751177962420115363784134387969970703125","relative_error":"2.8852691054168214342380427648026042367006847419437660969154467338488868719625087E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[73]`; 1; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `6.267531007627194` (`0x401911f3a601b2eb`) | `6.267531007627194` (`0x401911f3a601b2eb`) | `5.220112887557889` (`0x4014e16545d5f500`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"5.2201128875578906403697584395734594414606182743767713321412205274011944775937866","observed":"5.220112887557888825540430843830108642578125","relative_error":"3.4766093505781814122440975645043589119662105857951506781846894417261826401640700E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen1060
Source: `generated:seed=7714667220713743021`; canonical input SHA-256: `934a5ff61c49b6e42430c0a907f944cc5d8e2b2e0be8dff107b477616b33aee3`.
Steps: `[{"op":"state"},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[6.4065164080874455,-1.1787421234718467],"via":false,"vl":true},{"op":"split","param":1,"t":-0.9124948782379375}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["6.4065164080874455","-1.1787421234718467"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":13827876879029957872,"effective_uv_bits":[4618899114654439301,13831359438615456436],"hod":3,"used_extension":true},"simple":false,"step":1,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[71]`; 1; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `6.547018345573314e-17` (`0x3c92ded8ccc7361a`) | `6.547018345573314e-17` (`0x3c92ded8ccc7361a`) | `-3.872168990439994e-17` (`0xbc86525015a2e5fa`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-3.8721689904399938350575181407846889772139939220338810857431432934572221400029388E-17","observed":"-3.87216899043999387632348118783987397419198370489452909470884378606569953262805938720703125E-17","relative_error":"1.0657066659264305746978918915150648703245255204237300863155109262742777362357569E-17"},"observations":{"effective_uv_changed":false,"extension_selected":true,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[72]`; 1; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-7.366687317775092e-18` (`0xbc60fc86501c8e90`) | `-7.366687317775092e-18` (`0xbc60fc86501c8e90`) | `-1.0133036786263165e-16` (`0xbc9d34dc8814ab13`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-1.0133036786263168834757607710514274385856031789512933888505578923672838109897472E-16","observed":"-1.013303678626316491817783306411894833510171917765989302306905983641627244651317596435546875E-16","relative_error":"3.8651589422392099747308173515382153039745308790039553207853418694855808710388580E-16"},"observations":{"effective_uv_changed":false,"extension_selected":true,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[73]`; 1; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `-1.9503230108482398e-16` (`0xbcac1b6c00e16ebc`) | `-1.9503230108482398e-16` (`0xbcac1b6c00e16ebc`) | `-1.1266635841610087e-16` (`0xbca03ca7ab61e263`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-1.1266635841610089329282753558644908727055528825891431657761491669038313459128107E-16","observed":"-1.12666358416100870539469036813361550971017776916725805502750290543190203607082366943359375E-16","relative_error":"2.0195343861865208533251949631903002698663864365260741063416272957208450209501366E-16"},"observations":{"effective_uv_changed":false,"extension_selected":true,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen1084
Source: `generated:seed=7714667220713743045`; canonical input SHA-256: `0c460999f6ab3c2f57deb31d16a0381560523d7b5b46c9107aa46227991a2912`.
Steps: `[{"op":"eval_pt","uv":[0.7371722324916445,0.7380167354927215],"via":false},{"hu":2,"hv":2,"op":"eval_simple","ul":true,"upper":true,"uv":[1.0,0.22853009418487702],"via":true,"vl":false},{"op":"eval_pt","uv":[1.0,0.40267104888261085],"via":false},{"hu":2,"hv":1,"nzt":false,"op":"eval","ul":true,"upper":false,"uv":[1.8387123412949309,0.2374808394148531],"via":false,"vl":true},{"op":"max_anal"}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"1","effective_uv_decimal":["1.0","0.2374808394148531"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15020,"distance_bits":4615276929000429200,"effective_uv_bits":[4607182418800017408,4597724169249706344],"hod":3,"used_extension":false},"simple":true,"step":3,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[44]`; 3; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `178.09467034138433` (`0x406643078a1884b3`) | `178.09467034138433` (`0x406643078a1884b3`) | `249.5976654650177` (`0x406f332013534664`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"249.59766546501760062354102770912729367746104505992151666039723020664493778102420","observed":"249.5976654650177124494803138077259063720703125","relative_error":"4.4802478051130462321691681012411962967504055669755582832309940739139087351159426E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[45]`; 3; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-52.03196303959208` (`0xc04a04175d68dd47`) | `-52.03196303959208` (`0xc04a04175d68dd47`) | `-206.90633856361194` (`0xc069dd00b9bb3a24`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-206.90633856361189040270400070175282931873642354297348186924949875717828517882408","observed":"-206.9063385636119392074760980904102325439453125","relative_error":"2.3587857402630496934688033552610889997645764109105949763167835365002632565358705E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[46]`; 3; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `-243.3006381276756` (`0xc06e699ed3d9c984`) | `-243.3006381276756` (`0xc06e699ed3d9c984`) | `-278.875702638454` (`0xc0716e02e0c512e5`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-278.87570263845394182278262102358994322727460546434167778871160382032047084250860","observed":"-278.87570263845401541402679868042469024658203125","relative_error":"2.6388546395905836455040118589457043655321480734688806460954868741937729713183482E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen1187
Source: `generated:seed=7714667220713743148`; canonical input SHA-256: `dc0328356a89c190f9595b4886f2e69322fd347dcabcf15d79b4c7ea50f1a7bd`.
Steps: `[{"ivl":null,"op":"knots","param":0},{"hu":3,"hv":0,"nzt":false,"op":"eval","ul":false,"upper":false,"uv":[0.07152149122316642,0.31767332792688396],"via":true,"vl":false},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":false,"upper":false,"uv":[-1.1525220314909523,-0.19693967889937403],"via":false,"vl":false},{"op":"state"}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"1","effective_uv_decimal":["0.0","-0.19693967889937403"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15020,"distance_bits":4605251504641833320,"effective_uv_bits":[0,13819635556861356720],"hod":3,"used_extension":false},"simple":false,"step":2,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[39]`; 2; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `1.045632596679093` (`0x3ff0bae93ee5e467`) | `1.045632596679093` (`0x3ff0bae93ee5e467`) | `0.4884707542006529` (`0x3fdf431ad6960856`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.48847075420065253423680666347996799000323636628205262978802137366945803529843796","observed":"0.48847075420065289019788679070188663899898529052734375","relative_error":"7.2872547039121414186893992861429818847346255674329562147098599578740641170814421E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[40]`; 2; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-1.743796550772154` (`0xbffbe69736471aa5`) | `-1.743796550772154` (`0xbffbe69736471aa5`) | `-1.4338453702761766` (`0xbff6f107d7cdb70c`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-1.4338453702761769451238047710809812590538409625461148200581246686635902415710355","observed":"-1.43384537027617664506351502495817840099334716796875","relative_error":"2.0926962974279950132175299569960124860938614256553731738409789996719446613791027E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[41]`; 2; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `1.0356033199707828` (`0x3ff091d4c96e74e2`) | `1.0356033199707828` (`0x3ff091d4c96e74e2`) | `0.19650361507091468` (`0x3fc92707cc233eb6`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.19650361507091590629636979878767828251768967616888091564504848677543243909858498","observed":"0.196503615070914683382596876981551758944988250732421875","relative_error":"6.2233652672520581282081927951359579955831450537793383713760273002547431939725212E-15"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen1188
Source: `generated:seed=7714667220713743149`; canonical input SHA-256: `ad62109dc45dd91069f3ec202ae0e3043daf5186c046f85dc1348083bc412b40`.
Steps: `[{"dom":[0.0,0.0,1.0,1.0],"guess":[0.08227042306776189,0.9518191593433647],"op":"step_inv","p":[-0.29911936268241845,-0.34993432188635376,1.4448438732465982],"tol":0.039981892808861046},{"hu":2,"hv":1,"op":"eval_simple","ul":true,"upper":false,"uv":[0.41321024067167234,0.0],"via":true,"vl":true}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["0.41321024067167234","0.0"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":13817877422250580360,"effective_uv_bits":[4601115353861564386,0],"hod":3,"used_extension":false},"simple":true,"step":1,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[18]`; 1; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-22.41638460722188` (`0xc0366a982e7e9366`) | `-22.41638460722188` (`0xc0366a982e7e9366`) | `-33.728760866710374` (`0xc040dd48093c9016`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-33.728760866710371197765046707774717951834862528981754100583132678405380910146272","observed":"-33.7287608667103739890080760233104228973388671875","relative_error":"8.2755575882137961266941763472286990314785826039664872685813696910829174821661608E-17"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[19]`; 1; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-59.03289122451959` (`0xc04d8435c796d18a`) | `-59.03289122451959` (`0xc04d8435c796d18a`) | `-46.50188640593028` (`0xc047403dd051e386`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-46.501886405930278986361476171578045615098110143631622523066428813793848288259650","observed":"-46.5018864059302785562977078370749950408935546875","relative_error":"9.2483080058373288690453821193399152057217077787554636259000900379938016272343136E-18"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[20]`; 1; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `-48.02893801039339` (`0xc04803b43da0201e`) | `-48.02893801039339` (`0xc04803b43da0201e`) | `-53.55866475407344` (`0xc04ac78253a0162f`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-53.558664754073396487210103514244146240404334037084569142274475703474150410992404","observed":"-53.55866475407344040604584733955562114715576171875","relative_error":"8.2001364196602819102605651630136246399096592427436625620904486143539134412723802E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen1393
Source: `generated:seed=7714667220713743354`; canonical input SHA-256: `91eb993684a6bd0ab17ce83f5596c50aa0f08bd2c7af3eb987325432687bad16`.
Steps: `[{"dom":[-1.3318813211759284,0.0,-0.5558519620630855,1.0],"guess":null,"op":"step_inv","p":[-2.709608793519871,-2.4725186806262567,-0.5280712396312572],"tol":0.4492685546403934},{"dom":[-1.3318813211759284,0.0,-0.5558519620630855,1.0],"expand":true,"op":"bbox","want":[true,false,false]},{"op":"copy"},{"hu":2,"hv":1,"op":"eval_simple","ul":true,"upper":false,"uv":[0.5780974626166233,2.0259850766495373],"via":false,"vl":true},{"ivl":null,"op":"knots","param":1},{"op":"state"}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["-0.5558519620630855","1.0"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":13831527948615457070,"effective_uv_bits":[13826553925778493166,4607182418800017408],"hod":3,"used_extension":false},"simple":true,"step":3,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[80]`; 3; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `4449.9818749872275` (`0x40b161fb5c28bee7`) | `4449.9818749872275` (`0x40b161fb5c28bee7`) | `4230.249268191276` (`0x40b0863fd00a4977`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"4230.2492681912800794593323589998474244809933346993460017280795726156886048758672","observed":"4230.2492681912763146101497113704681396484375","relative_error":"8.8998282227878241295210270494035469344040509530683565523081429256223381475030723E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[81]`; 3; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `7541.873290072862` (`0x40bd75df8ff02edd`) | `7541.873290072862` (`0x40bd75df8ff02edd`) | `5464.379791604597` (`0x40b558613a05c90a`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"5464.3797916045936886479539914887270297240500311454682718546837074047933822212554","observed":"5464.379791604596903198398649692535400390625","relative_error":"5.8827361333796708705256967584099209891339406813715323648027731647493718287221488E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[82]`; 3; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `-5845.071187450852` (`0xc0b6d51239573d4c`) | `-5845.071187450852` (`0xc0b6d51239573d4c`) | `-5290.84250034043` (`0xc0b4aad7ae1a3104`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-5290.8425003404298244497343375123713699571296400732355041024433650042983043885426","observed":"-5290.84250034042997867800295352935791015625","relative_error":"2.9150039640396295895588664464161137736160332893324634183909745311264751968854743E-17"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen1423
Source: `generated:seed=7714667220713743384`; canonical input SHA-256: `72bd487b427528ae27448710b1b49d9866c6860505836328ca77bf128906416e`.
Steps: `[{"op":"state"},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[2.596561767714335,0.49192488535628787],"via":false,"vl":true},{"op":"copy"},{"op":"state"}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["2.596561767714335","0.49192488535628787"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":13821755959934902832,"effective_uv_bits":[4613029356104778786,4602533350839445328],"hod":3,"used_extension":false},"simple":false,"step":1,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[71]`; 1; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `0.4725309325435524` (`0x3fde3df26167de3e`) | `0.4725309325435524` (`0x3fde3df26167de3e`) | `0.6510854299296156` (`0x3fe4d5b11c8e64c0`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.65108542992961554075892583510625439502486954204752372530271843299932512676224192","observed":"0.65108542992961560003095655702054500579833984375","relative_error":"9.1035719733924602060279187347356858440923357243943033470491528557363147566978230E-17"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[72]`; 1; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-0.2549116686165397` (`0xbfd050790804eabe`) | `-0.2549116686165397` (`0xbfd050790804eabe`) | `-0.16431418708626574` (`0xbfc5083f4de6f483`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.16431418708626568619952730372356549116730002226755037666439649362329948342986581","observed":"-0.1643141870862657449858801328446133993566036224365234375","relative_error":"3.5776796801032115148824257006204952143443478638813690021314064949941675272846579E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[73]`; 1; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `0.05094297083005503` (`0x3faa1532735a32bc`) | `0.05094297083005503` (`0x3faa1532735a32bc`) | `0.2643655684638169` (`0x3fd0eb5d8faf650d`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.26436556846381695259630672568385124167894464069437794468976598888933675271700108","observed":"0.264365568463816924538178909642738290131092071533203125","relative_error":"1.0613382059956630855064258507849980862054756923409023882218456950531343037762157E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen1540
Source: `generated:seed=7714667220713743501`; canonical input SHA-256: `290796843dea20ecc18426f80ab9327fae258f28e059c414ec274247f995bcd9`.
Steps: `[{"op":"state"},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[1.0,2.146064513316582],"via":false,"vl":false},{"hu":0,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[0.29890519434250407,2.4148914612168184],"via":false,"vl":true},{"op":"eq","other":{"allow":false,"base":{"bspline":{"form":9,"net":[[[1.2908736259897482,0.031454686947780884,0.20719691950824815,-1.7976931348623157e+308],[1.1541085033209153,-0.02490443634500978,0.005553179713321286,-1.7976931348623157e+308],[1.0175702290960413,-0.0704051079408164,-0.1996432987713979,-1.7976931348623157e+308],[0.881180585091884,-0.10879136409607545,-0.40716751786741523,-1.7976931348623157e+308],[0.7448285443532214,-0.14537768177744817,-0.61528065251363,-1.7976931348623157e+308],[0.6083947793554504,-0.1858758575457231,-0.8221138800458154,-1.7976931348623157e+308],[0.471778002440291,-0.23513418185305202,-1.0260809053319044,-1.7976931348623157e+308]],[[0.8728198385292734,0.1344697994902051,0.46161576540347293,-1.7976931348623157e+308],[0.7360317326936532,0.07701055136495759,0.2603319715902514,-1.7976931348623157e+308],[0.5994295822876624,0.02845234754570396,0.05613587633959349,-1.7976931348623157e+308],[0.4629492691579914,-0.01427392656434905,-0.1499683475183668,-1.7976931348623157e+308],[0.32649978071139296,-0.055524729534389056,-0.35655532559866726,-1.7976931348623157e+308],[0.18998330009394934,-0.09998221639656706,-0.5620931200340566,-1.7976931348623157e+308],[0.05331679834728229,-0.15162069668664457,-0.7652813904402027,-1.7976931348623157e+308]],[[0.4550452356740123,0.2508485150503663,0.7116622209431439,-1.7976931348623157e+308],[0.3182033329755703,0.1908141968642229,0.5112209552628064,-1.7976931348623157e+308],[0.18145166713574418,0.13509920550910415,0.3093664642005572,-1.7976931348623157e+308],[0.04475912413572602,0.08221422034243207,0.1065860333488591,-1.7976931348623157e+308],[-0.09191846085755989,0.03004522330753116,-0.09642865914604193,-1.7976931348623157e+308],[-0.2286285545173632,-0.02367985134003814,-0.29893422406980114,-1.7976931348623157e+308],[-0.3654114475326578,-0.0808895797563402,-0.5002996573605996,-1.7976931348623157e+308]],[[0.03740611013069964,0.37371206172577154,0.959586927356621,-1.7976931348623157e+308],[-0.09950454210571875,0.3103869405511701,0.7602223679530011,-1.7976931348623157e+308],[-0.23644728074156618,0.24552595423132034,0.5613603228742682,-1.7976931348623157e+308],[-0.3734110422618818,0.17965867502470584,0.36282752323234696,-1.7976931348623157e+308],[-0.5103801225464589,0.11353680493876724,0.16437802228643544,-1.7976931348623157e+308],[-0.6473376434075944,0.04796824453790094,-0.03425251411282155,-1.7976931348623157e+308],[-0.7842692782922642,-0.01636124355470364,-0.2332884582305873,-1.7976931348623157e+308]],[[-0.3802811884010283,0.4942697337886825,1.208266084789288,-1.7976931348623157e+308],[-0.5172552733069626,0.4279083097594989,1.0098949626570608,-1.7976931348623157e+308],[-0.6543743077824661,0.3546086503507992,0.8137939374004813,-1.7976931348623157e+308],[-0.7915883126538068,0.2767630860293492,0.6191802708129217,-1.7976931348623157e+308],[-0.9288263449200579,0.1977674132809364,0.42494290416387565,-1.7976931348623157e+308],[-1.06601215775745,0.12127130427656359,0.22988771402867642,-1.7976931348623157e+308],[-1.2030810312930398,0.05037267585410103,0.033001103873048554,-1.7976931348623157e+308]]],"oob":false,"p":3,"q":3,"u":[0.0,0.0,0.0,0.0,0.811613594564398,1.0,1.0,1.0,1.0],"v":[0.0,0.0,0.0,0.0,0.2239332322577543,0.5704866891609076,0.5853643688103138,1.0,1.0,1.0,1.0]}},"d":0.19330236139490586,"owns":true,"sing":14}}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["1.0","2.146064513316582"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":13829264586295779816,"effective_uv_bits":[4607182418800017408,4612014926471260210],"hod":3,"used_extension":false},"simple":false,"step":1,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[71]`; 1; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-0.938646918289514` (`0xbfee096543116dbf`) | `-0.938646918289514` (`0xbfee096543116dbf`) | `-0.43225584188568517` (`0xbfdbaa146819da8f`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.43225584188568536453374283190504753569398198931504877961325887072923571501981236","observed":"-0.432255841885685165859598555471166037023067474365234375","relative_error":"4.5962165232916704717915283925158075847729972803572422698649851789391849684624805E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[72]`; 1; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-0.9004664475474536` (`0xbfecd09f02eb9255`) | `-0.9004664475474536` (`0xbfecd09f02eb9255`) | `-0.08403823428409753` (`0xbfb583879bdd2101`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.084038234284097333618423966498378710151549714360167435941637339271880325515288954","observed":"-0.08403823428409752660517284539309912361204624176025390625","relative_error":"2.2964160363780205617125441644395649251549429615272475897921346217240897604607761E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[73]`; 1; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `3.140505145174922` (`0x40091fc1295b9174`) | `3.140505145174922` (`0x40091fc1295b9174`) | `-0.7315561128175535` (`0xbfe768e85d77b05d`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.73155611281755333813587692880971651952022046790535932106223138730979186185944110","observed":"-0.73155611281755350550071170800947584211826324462890625","relative_error":"2.2877921713291694618481064646171890949222445548119939332260493404813182733937234E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen1904
Source: `generated:seed=7714667220713743865`; canonical input SHA-256: `a903a07a31a9c3aa065db54938e0b5d3df91f97144d52e77ac29e9ad704e6884`.
Steps: `[{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[0.048727412995444586,-3.0570665746203565],"via":false,"vl":true},{"dom":[0.0,-1.0023489285348026,1.0,0.3933326287589487],"expand":false,"op":"bbox","want":[true,true,true]},{"op":"state"}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["0.048727412995444586","-3.0570665746203565"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":13823665810316556016,"effective_uv_bits":[4587183181324082832,13837438357597946734],"hod":3,"used_extension":true},"simple":false,"step":0,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[17]`; 0; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-0.7902742150649749` (`0xbfe949ed26926fb8`) | `-0.7902742150649749` (`0xbfe949ed26926fb8`) | `-0.9523024138687969` (`0xbfee7942e96efca3`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.95230241386879647908680373106413829675388412563060286220492415140149538623133636","observed":"-0.95230241386879688203492833054042421281337738037109375","relative_error":"4.2313042446513457741982516152101839208476008122219670152119982245030470726961262E-16"},"observations":{"effective_uv_changed":false,"extension_selected":true,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[18]`; 0; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `0.7551720366461071` (`0x3fe82a5e8c07f5b5`) | `0.7551720366461071` (`0x3fe82a5e8c07f5b5`) | `0.696735814951438` (`0x3fe64ba8e86562fe`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.69673581495143825983611485311724261006444048390830753027057851308282406867790492","observed":"0.6967358149514379928035623379400931298732757568359375","relative_error":"3.8326227356891224606254028623695511322845354828616886442927710550290300927965282E-16"},"observations":{"effective_uv_changed":false,"extension_selected":true,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[19]`; 0; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `0.6035263122537337` (`0x3fe3501669acf7f9`) | `0.6035263122537337` (`0x3fe3501669acf7f9`) | `0.38227665313640047` (`0x3fd877387ecfb0f6`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.38227665313640142162519143635534813341796446097821712957665748884399319134344770","observed":"0.38227665313640046829135599182336591184139251708984375","relative_error":"2.4938322223522494893195039821920040873253519951166464835548073482220797230105292E-15"},"observations":{"effective_uv_changed":false,"extension_selected":true,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen2083
Source: `generated:seed=7714667220713744044`; canonical input SHA-256: `5e72522e820fe5313d85140130ba8bfef652adaee983566f23f8d87be657b9a6`.
Steps: `[{"op":"state"},{"hu":1,"hv":0,"nzt":true,"op":"eval","ul":true,"upper":true,"uv":[0.0,0.029597499211137746],"via":false,"vl":true},{"op":"copy"},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[0.9456497335512446,0.18644450857407346],"via":false,"vl":true}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"1","effective_uv_decimal":["0.9456497335512446","0.18644450857407346"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15020,"distance_bits":4604678354016580390,"effective_uv_bits":[4606692875120565204,4595885391645251204],"hod":3,"used_extension":false},"simple":false,"step":3,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[133]`; 3; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-44.37804236885662` (`0xc0463063b13d5eeb`) | `-44.37804236885662` (`0xc0463063b13d5eeb`) | `-46.08889292977614` (`0xc0470b60d7f11df8`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-46.088892929776149255060457671251197026686873801848207607774791384518363435335518","observed":"-46.08889292977613649782142601907253265380859375","relative_error":"2.7679638673660239167173331319250472620991697049829427189713753897686167486067303E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[134]`; 3; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-10.160535911162013` (`0xc0245231c3508c7f`) | `-10.160535911162013` (`0xc0245231c3508c7f`) | `5.728343316701154` (`0x4016e9d2d495f76d`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"5.7283433167011600416504853254949779099046374761622976574608014543322140425888620","observed":"5.72834331670115393109199430909939110279083251953125","relative_error":"1.0667235103037339820456033179976695272046645071014339529586268510013775245147798E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[135]`; 3; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `-49.63112967112802` (`0xc048d0c8db6883da`) | `-49.63112967112802` (`0xc048d0c8db6883da`) | `-37.09290411473311` (`0xc0428be4483338a5`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-37.092904114733107104027469425335596904401206016865253380750078655882365121213428","observed":"-37.09290411473310911105727427639067173004150390625","relative_error":"5.4108187340712242774579596353611794397087756887661123514968158261870462489503673E-17"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen2241
Source: `generated:seed=7714667220713744202`; canonical input SHA-256: `cabd3cf8f51d1c504398211e2971acf0cc2de1634405f8105304cac05eb48d43`.
Steps: `[{"op":"transform","origin":[-0.6095555121927125,1.7212235828586055,1.264940535424408],"scale":null,"x":[-0.8551972095772238,0.5129119789729973,-0.07455893345088538],"y":[-0.7271170120394526,0.6639307667382538,0.17463329516782589]},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[-1.0514033593256977,1.0],"via":true,"vl":true},{"hu":2,"hv":8,"nzt":true,"op":"eval","ul":false,"upper":false,"uv":[-1.495381116559781,0.11929062743244334],"via":true,"vl":true},{"op":"copy"},{"op":"eval_pt","uv":[-1.477156196336289,0.0],"via":true},{"op":"state"}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["-1.0514033593256977","1.0"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":13830531084667775732,"effective_uv_bits":[13830785955804698020,4607182418800017408],"hod":3,"used_extension":false},"simple":false,"step":1,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[18]`; 1; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-307.00281148842805` (`0xc073300b840f2da0`) | `-307.00281148842805` (`0xc073300b840f2da0`) | `-276.39849811011663` (`0xc07146603f8de780`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-276.39849811011595964496828922978652941216237824193994885722208841834459664538234","observed":"-276.3984981101166340522468090057373046875","relative_error":"2.4399817044269660913089103498890761983130572673299527524751518944524978578366444E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[19]`; 1; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `75.41219753418767` (`0x4052da6171c434fc`) | `75.41219753418767` (`0x4052da6171c434fc`) | `74.30860971023986` (`0x405293c042f12d54`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"74.308609710239047166531002070641051992935812495808752113147922676924636530299170","observed":"74.30860971023986394357052631676197052001953125","relative_error":"1.0991687809921341230997756869888916164492748339746210901976648199811835905030852E-14"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[20]`; 1; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `-867.282752531175` (`0xc08b1a4313c25210`) | `-867.282752531175` (`0xc08b1a4313c25210`) | `-889.9742199890065` (`0xc08bcfcb33d97f24`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-889.97421998900602326336354291775014808393570791355446521137036240176669328612226","observed":"-889.97421998900654216413386166095733642578125","relative_error":"5.8305146223803309589641344930220273637258683278660987906055179492656627940295034E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen2243
Source: `generated:seed=7714667220713744204`; canonical input SHA-256: `b5c1b0a415107215e7fdcd7fc301a26bf021c40add31c08ae54074e3f9e07f4d`.
Steps: `[{"dom":[-2.3955961097301937,1.2001027453248296,1.6019116940050564,3.485683281549754],"expand":true,"op":"bbox","want":[true,true,true]},{"hu":2,"hv":1,"op":"eval_simple","ul":false,"upper":true,"uv":[-0.14399469619919625,3.485683281549754],"via":false,"vl":true},{"hu":2,"hv":0,"nzt":true,"op":"eval","ul":true,"upper":true,"uv":[-1.858474282224452,3.331215267820798],"via":true,"vl":true},{"op":"swap"},{"hu":2,"hv":1,"op":"eval_simple","ul":true,"upper":false,"uv":[6.788927939736725,1.9092560703395898],"via":true,"vl":true},{"op":"state"}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"2","effective_uv_decimal":["3.485683281549754","1.6019116940050564"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":13829373733563092494,"effective_uv_bits":[4615031479763976928,4609893188080848524],"hod":3,"used_extension":false},"simple":true,"step":4,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[80]`; 4; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `0.23645799402435283` (`0x3fce44416b9b2e93`) | `0.23645799402435283` (`0x3fce44416b9b2e93`) | `0.09034281810192132` (`0x3fb720b4f92d1d56`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.090342818101921386389049744801854744505033256943207124282230624010689495586152362","observed":"0.0903428181019213238922560549326590262353420257568359375","relative_error":"6.9177379013528946993964085148402886736592442015638424420803049246576427416825733E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":2,"verified":true}` |
| `values.out[81]`; 4; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-0.20376279839812728` (`0xbfca14e63da1757c`) | `-0.20376279839812728` (`0xbfca14e63da1757c`) | `-0.16559813966873096` (`0xbfc53251e113ec01`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.16559813966873092818642287225999023459124207198061931770857033142292236337139723","observed":"-0.1655981396687309648019237329208408482372760772705078125","relative_error":"2.2111058091538914281025843933359420633980818543650753599015162182313083189890187E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":2,"verified":true}` |
| `values.out[82]`; 4; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `0.0680023729734183` (`0x3fb1689a7ff8a242`) | `0.0680023729734183` (`0x3fb1689a7ff8a242`) | `0.1123305272423861` (`0x3fbcc1b184d93656`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.11233052724238611416091394232054792923658021475260280877830807247783770010944539","observed":"0.1123305272423860967645481423460296355187892913818359375","relative_error":"1.5486765910424998000981115151178271703548767979172263961391836661254218757439312E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":2,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen2270
Source: `generated:seed=7714667220713744231`; canonical input SHA-256: `466ddea59ecfbd9246039141e77a3aeabe8e6a457514a49507e9ef1712b35ba8`.
Steps: `[{"op":"eval_pt","uv":[0.04000450661557142,-0.5122519781467008],"via":false},{"op":"normal","ul":true,"uv":[0.32617637241995645,0.0],"via":false,"vl":true},{"hu":1,"hv":1,"op":"eval_simple","ul":true,"upper":false,"uv":[1.0,0.08311533699099938],"via":false,"vl":false},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":false,"upper":false,"uv":[0.0,0.344687735090091],"via":false,"vl":true},{"op":"state"}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"1","effective_uv_decimal":["0.0","0.344687735090091"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15020,"distance_bits":4605657899551932164,"effective_uv_bits":[0,4599880962139149576],"hod":3,"used_extension":false},"simple":false,"step":3,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[38]`; 3; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `12.311765909445098` (`0x40289f9fc8022617`) | `12.311765909445098` (`0x40289f9fc8022617`) | `11.951284079414354` (`0x4027e70eb4f4948a`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"11.951284079414354329646599010406856171141021998292658391799213955888732325237070","observed":"11.951284079414353556103378650732338428497314453125","relative_error":"6.4724695289611110583185771098210297209534159924891475725266923954559970510285837E-17"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[39]`; 3; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-19.366017183779064` (`0xc0335db34d5a1ae8`) | `-19.366017183779064` (`0xc0335db34d5a1ae8`) | `-16.119631950833877` (`0xc0301ea033146360`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-16.119631950833873356874681433618789769115637390047502652764178904443642976932097","observed":"-16.1196319508338774539879523217678070068359375","relative_error":"2.5416915742150074880368569451510357674877255651216370057656939756833432041123029E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[40]`; 3; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `-2.4903132069934992` (`0xc003ec2954a6abf2`) | `-2.4903132069934992` (`0xc003ec2954a6abf2`) | `-0.8722549957384413` (`0xbfebe9834f0f03e4`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.87225499573844315846617960733906587338046633066311313236141481360597681713837522","observed":"-0.872254995738441341046609522891230881214141845703125","relative_error":"2.0835874589010945485049596912692475496113640033897828590587244337113135939634251E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen2410
Source: `generated:seed=7714667220713744371`; canonical input SHA-256: `f3726ebaaa5640845fa2dec12fc8008485e81396b63909a7d1f0d351112fc354`.
Steps: `[{"hu":2,"hv":1,"op":"eval_simple","ul":true,"upper":false,"uv":[2.354742835519051,0.1247310636777702],"via":false,"vl":true},{"hu":3,"hv":0,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[0.38470472248237564,0.4908609007063788],"via":false,"vl":true}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["1.0","0.1247310636777702"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15020,"distance_bits":4468590870868251252,"effective_uv_bits":[4607182418800017408,4593652241013576632],"hod":3,"used_extension":false},"simple":true,"step":0,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[19]`; 0; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `-2.68841473237388e-11` (`0xbdbd8f36f952275e`) | `-2.68841473237388e-11` (`0xbdbd8f36f952275e`) | `4.787836800378111e-16` (`0x3cc140000067669e`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"4.7878367988933735352483938979479388264107472174590318165786099485404780396837040E-16","observed":"4.78783680037811079218975111503273705341920583010428824621840249164961278438568115234375E-16","relative_error":"3.1010607062130914008165945073493927402952575029999322278621980241022253274757491E-10"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen2423
Source: `generated:seed=7714667220713744384`; canonical input SHA-256: `03bfb2de669ecf0e8900265f00e674bb769afb85c7c75524f2555cb78677cdd6`.
Steps: `[{"op":"state"},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[0.7039651834103567,-0.009098691962300842],"via":true,"vl":true},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[1.0,-1.536171191746163],"via":false,"vl":true},{"op":"copy"},{"hu":0,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[0.9897115366349584,0.49992547463231984],"via":false,"vl":true},{"op":"normal","ul":true,"uv":[1.0,0.4186409062848606],"via":false,"vl":true}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["0.7039651834103567","-0.009098691962300842"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15045,"distance_bits":4735750320078830162,"effective_uv_bits":[4604515974220653787,13799770697449394304],"hod":3,"used_extension":false},"simple":false,"step":1,"upper":false}`.
Trace: `{"call":"1","effective_uv_decimal":["1.0","-1.536171191746163"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15045,"distance_bits":4735750320078830162,"effective_uv_bits":[4607182418800017408,13832969156034148030],"hod":3,"used_extension":false},"simple":false,"step":2,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[71]`; 1; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-23520150812.139603` (`0xc215e7a414708ef4`) | `-23520150812.139603` (`0xc215e7a414708ef4`) | `-22940207355.3365` (`0xc2155d5f23ed5893`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-22940207355.336498756200468392138144579943075730407632499355720415180385412697076","observed":"-22940207355.336498260498046875","relative_error":"2.1608454267167931908853766457877592717978939239344681424824637571419664729705222E-17"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[72]`; 1; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `1226873005.564001` (`0x41d248262b641898`) | `1226873005.564001` (`0x41d248262b641898`) | `2434448490.510294` (`0x41e223578d505454`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"2434448490.5102974030306399964176193949532347405606677653951176244768917917203704","observed":"2434448490.5102939605712890625","relative_error":"1.4140612809648421930637826297701746488453019228477986646095822332454601393660953E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[73]`; 1; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `-1827094613.091106` (`0xc1db39d01545d4ae`) | `-1827094613.091106` (`0xc1db39d01545d4ae`) | `-2398325735.193825` (`0xc1e1de717ce633d0`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-2398325735.1938187895732872833497789958773318055812523403309728211233563549294142","observed":"-2398325735.19382476806640625","relative_error":"2.4927777871188494521052713716501592374580717488702032338115652604712644148719016E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[90]`; 2; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-1382595758.4633026` (`0xc1d49a2f2b9da6c0`) | `-1382595758.4633026` (`0xc1d49a2f2b9da6c0`) | `-2387510684.043724` (`0xc1e1c9d0b3816630`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-2387510684.0437477868193846664151097788036130116030654686831620995916803113748534","observed":"-2387510684.04372406005859375","relative_error":"9.9378658070464389490507862584382019307446927916918454941598744880786872435989836E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[91]`; 2; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-16234217167.59932` (`0xc20e3d13f67ccb68`) | `-16234217167.59932` (`0xc20e3d13f67ccb68`) | `-21746697320.231216` (`0xc21440d111a0ecc4`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-21746697320.231210611824248170194724906457525670440686970343447872895788846892328","observed":"-21746697320.2312164306640625","relative_error":"2.6757349535170418634207643966465518354032526018958290999166322811854317000563357E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
| `values.out[92]`; 2; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `-90839440270.66617` (`0xc2352673db8eaa8a`) | `-90839440270.66617` (`0xc2352673db8eaa8a`) | `-64074153297.93849` (`0xc22dd63bfaa3e082`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-64074153297.938461316906288017212537031361553244429900760374313693580911619220918","observed":"-64074153297.9384918212890625","relative_error":"4.7607937373187620390502268720813319967676350601484118572422127395945043513239525E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":1,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen2456
Source: `generated:seed=7714667220713744417`; canonical input SHA-256: `c4c256ba30620c541b089ff0911d147849f876c85bc20cf46fe59e56b6b297e0`.
Steps: `[{"op":"state"},{"hu":2,"hv":1,"op":"eval_simple","ul":false,"upper":false,"uv":[4.919850270656859,1.0],"via":true,"vl":true},{"op":"is_planar","tol":0.001}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["4.919850270656859","1.0"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":4651362212541756169,"effective_uv_bits":[4617225277388800120,4607182418800017408],"hod":3,"used_extension":false},"simple":true,"step":1,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[71]`; 1; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-149100539.7370812` (`0xc1a1c62ff77962b5`) | `-149100539.7370812` (`0xc1a1c62ff77962b5`) | `-148991984.45221484` (`0xc1a1c2dfe0e788b4`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-148991984.45221493916674564929872168608448790656213171619470752662386664653775033","observed":"-148991984.45221483707427978515625","relative_error":"6.8522119655964316823984832221327884890483678991620258596154272512393962022405858E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[72]`; 1; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `78397493.56155671` (`0x4192b100d63f08b9`) | `78397493.56155671` (`0x4192b100d63f08b9`) | `78238449.28600912` (`0x4192a74bc524df93`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"78238449.286009085030702619742621042266312793948747095063708562482108167446188596","observed":"78238449.28600911796092987060546875","relative_error":"4.2089570475103409115825477128480052934697053285527923633731873566699135436962174E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[73]`; 1; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `36384867.4068251` (`0x418159831b412d85`) | `36384867.4068251` (`0x418159831b412d85`) | `36481183.77271136` (`0x41816544fe2e834b`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"36481183.772711359059988658267006156693439551669700520320162025609750941506104788","observed":"36481183.772711358964443206787109375","relative_error":"2.6190337483337548180520231518088148335958704254097697682985298865940105402504300E-18"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen2531
Source: `generated:seed=7714667220713744492`; canonical input SHA-256: `be2221978e98e31d856b00abc7753267057b708f92496c105d0271c8ae329689`.
Steps: `[{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[6.277318753508208,-1.5020207941852206],"via":true,"vl":true},{"d":1.2468838758568417,"op":"base_offset","tol":1e-06},{"hu":0,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[0.9698094843121348,-0.32120948252423864],"via":false,"vl":true},{"op":"normal","ul":true,"uv":[1.5387393473608975,-1.263811270594287],"via":false,"vl":true},{"op":"reverse","param":1}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["3.0940389978703795","-1.5020207941852206"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":4604315093149848080,"effective_uv_bits":[4614149575238956820,13832815356316418016],"hod":3,"used_extension":false},"simple":false,"step":0,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[17]`; 0; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `-2.8260082560835103` (`0xc0069baa3770d65d`) | `-2.8260082560835103` (`0xc0069baa3770d65d`) | `-2.2953622171862316` (`0xc0025ce6ddba4fb2`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-2.2953622171862302108804647354408953936136235915279512416866102204367056331376536","observed":"-2.29536221718623156817784547456540167331695556640625","relative_error":"5.9132165310404329423734755242426528832056805996032425874702791250948447860808358E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[18]`; 0; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `2.546200288338782` (`0x40045e9e41bbd8c2`) | `2.546200288338782` (`0x40045e9e41bbd8c2`) | `3.7333073113753645` (`0x400dddd0394232f4`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"3.7333073113753635445763319690673014813420804457981222499288632095615304329794540","observed":"3.7333073113753645344559117802418768405914306640625","relative_error":"2.6514816414791719731588598730083446655113852951966978435554247984040659488708177E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[19]`; 0; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `1.1520583395443187` (`0x3ff26ed4b9b6d4a2`) | `1.1520583395443187` (`0x3ff26ed4b9b6d4a2`) | `0.6427022069735775` (`0x3fe49104380097de`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.64270220697357692848632956227760465398878070297810757949935292102359328144665254","observed":"0.6427022069735774945087314335978589951992034912109375","relative_error":"8.8069154848038406007379275652914143477655232096180082691563330005230418110469198E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen2731
Source: `generated:seed=7714667220713744692`; canonical input SHA-256: `0b381d32a486769ecea2814957ce86ed4485d9882f4e44b521f86048f268d3af`.
Steps: `[{"op":"state"},{"op":"normal","ul":false,"uv":[-0.9798998157367476,0.8739381973814105],"via":false,"vl":false},{"op":"eq","other":{"allow":false,"base":{"bspline":{"form":9,"net":[[[0.9108082781397742,-0.7544705696118594,0.24984991994132644,-1.7976931348623157e+308],[0.5217070173203113,-0.7282690033203555,0.5627615476456613,-1.7976931348623157e+308],[0.1326057565008486,-0.7020674370288514,0.8756731753499962,-1.7976931348623157e+308],[-0.2564955043186141,-0.6758658707373475,1.1885848030543311,-1.7976931348623157e+308]],[[0.7801752585649075,1.214238776867928,-0.07743974271223253,-1.7976931348623157e+308],[0.39107399774544477,1.240440343159432,0.23547188499210236,-1.7976931348623157e+308],[0.0019727369259819882,1.2666419094509358,0.5483835126964373,-1.7976931348623157e+308],[-0.38712852389348074,1.2928434757424399,0.8612951404007722,-1.7976931348623157e+308]]],"oob":true,"p":1,"q":1,"u":[-1.5744089044607625,-1.5744089044607625,2.0317563378621646,2.0317563378621646],"v":[-1.1386455850683426,-1.1386455850683426,-0.35576061301818973,0.41559605597628013,1.3730505411591296,1.3730505411591296]}},"d":0.46003599055708677,"owns":true,"sing":16}},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[-2.090050615584399,0.0],"via":false,"vl":false},{"op":"state"}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["-1.3960484534726056","0.0"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15002,"distance_bits":4610895479846230185,"effective_uv_bits":[13832338099322273104,0],"hod":3,"used_extension":false},"simple":false,"step":3,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[78]`; 3; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `5245.318466443832` (`0x40b47d5187045122`) | `5245.318466443832` (`0x40b47d5187045122`) | `5107.4113298286475` (`0x40b3f3694ce961e9`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"5107.4113298286487979178315622145525916401852205064697158271107755206520853061320","observed":"5107.4113298286474673659540712833404541015625","relative_error":"2.6051394563037290945596733294590439094768336994708003741559525485828417834206118E-16"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[79]`; 3; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-1603.545437548365` (`0xc0990e2e872e40f4`) | `-1603.545437548365` (`0xc0990e2e872e40f4`) | `-651.0900779587619` (`0xc08458b87acaf7c8`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-651.09007795876271046903636469265346648961817253798967032893276299198435539885272","observed":"-651.0900779587618671939708292484283447265625","relative_error":"1.2951741918402474845634357528648376523129375372775667262502343746135639879221678E-15"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[80]`; 3; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `2340.673461892583` (`0x40a24958cfff477e`) | `2340.673461892583` (`0x40a24958cfff477e`) | `1461.6650668591205` (`0x4096d6a90749664e`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"1461.6650668591249214275844259648355658359950534401381908800645357528216851275009","observed":"1461.66506685912054308573715388774871826171875","relative_error":"2.9954480999401630177197343393698373940358648888782266785069250294507746536541576E-15"},"observations":{"effective_uv_changed":true,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen2766
Source: `generated:seed=7714667220713744727`; canonical input SHA-256: `adeba1dbd034c1039a4994c4ab29fa57ec2a04f662aa7c04c5cbb6a090f18415`.
Steps: `[{"op":"state"},{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[0.0,0.0],"via":false,"vl":true}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["0.0","0.0"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15045,"distance_bits":13963293391446979919,"effective_uv_bits":[0,0],"hod":3,"used_extension":false},"simple":false,"step":1,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[71]`; 1; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `590057910273.8309` (`0x42612c4626003a97`) | `590057910273.8309` (`0x42612c4626003a97`) | `590013419943.2698` (`0x42612bf14a34e8a2`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"590013419943.26935810629575026727282471925609652154083436058471784662987337126270","observed":"590013419943.269775390625","relative_error":"7.0724548822949641141468808984053150367029015460529633002494230156882762677503905E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[72]`; 1; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `143936066697.85992` (`0x4240c1a10a44ee12`) | `143936066697.85992` (`0x4240c1a10a44ee12`) | `120138234122.80193` (`0x423bf8cbf90acd4b`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"120138234122.80243851831612245154321157630184769442606397365883057129324450897489","observed":"120138234122.8019256591796875","relative_error":"4.2689085633697525620199233002617930736649030030304449889541513619319928614869120E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[73]`; 1; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `371415830277.7452` (`0x42559e86f3c16fb1`) | `371415830277.7452` (`0x42559e86f3c16fb1`) | `378660588086.4269` (`0x42560a7b828d9b52`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"378660588086.42739479899957650589740944269720964634629957715681086444372785016290","observed":"378660588086.4268798828125","relative_error":"1.3598357032049473293132199452758807313157548506498453471341780728435821386945760E-15"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
### gen2828
Source: `generated:seed=7714667220713744789`; canonical input SHA-256: `801fb4e1a59fe5ef32536a0be65750d611ea69d264c3c1d9837808bee919d7b6`.
Steps: `[{"hu":2,"hv":1,"nzt":true,"op":"eval","ul":true,"upper":false,"uv":[0.5,0.33163065917456913],"via":false,"vl":false}]`.
Disposition: `four-term-change-locally-verified-conditional-on-base`.
Trace: `{"call":"0","effective_uv_decimal":["0.5","0.33163065917456913"],"flags":[],"pole_depth":0,"selected":{"base_type_code":15020,"distance_bits":13815166225336368064,"effective_uv_bits":[4602678819172646912,4599645746770238806],"hod":3,"used_extension":false},"simple":false,"step":0,"upper":false}`.
| Field; step; serialized partial / component; last write; history | C++ decimal (bits) | legacy Rust decimal (bits) | corrected Rust decimal (bits) | Local jet / observations |
|---|---|---|---|---|
| `values.out[17]`; 0; `[2,1]` / x; `[2,1]`; `[[2,1]]` | `0.0034674287147792504` (`0x3f6c67b99dcc4b2e`) | `0.0034674287147792504` (`0x3f6c67b99dcc4b2e`) | `0.003349020034729185` (`0x3f6b6f6770badd5e`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.0033490200347291823151357078778967791634918370756902808570107432552262788693837250","observed":"0.003349020034729185101018966719266245490871369838714599609375","relative_error":"8.3185028156054220687740432169193027937274507795990811287489429489387103099214625E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[18]`; 0; `[2,1]` / y; `[2,1]`; `[[2,1]]` | `-0.004677403062997442` (`0xbf73289cd2f8f8e5`) | `-0.004677403062997442` (`0xbf73289cd2f8f8e5`) | `-0.004799127010807076` (`0xbf73a83fd8f8e66e`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"-0.0047991270108070730912710789492383684313994923159682965506682317580973912003479086","observed":"-0.00479912701080707597423025134730778518132865428924560546875","relative_error":"6.0072574989284105171243762545471183576088095499754749923386421634869072149673394E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
| `values.out[19]`; 0; `[2,1]` / z; `[2,1]`; `[[2,1]]` | `0.02073466720437944` (`0x3f953b77f6251f9f`) | `0.02073466720437944` (`0x3f953b77f6251f9f`) | `0.020741281256499454` (`0x3f953d33d2b1f966`) | `{"alias":false,"blockers":[],"jet":{"accepted_existing_relative_rule":true,"expected":"0.020741281256499446046591548056124105271103343502303797730540119896328028875769598","observed":"0.020741281256499453922170772557365125976502895355224609375","relative_error":"3.7970553154874954575966425882206712722570589024362798385654099676297657719901602E-16"},"observations":{"effective_uv_changed":false,"extension_selected":false,"scope":"Local formula at selected base/UV only; no claim about the derivative of an outer clamping/extension map.","simple_dispatch_rule":"eval_simple or eval with nzt=false; offset_surface.rs:1173-1197"},"trace_call":0,"verified":true}` |
Limitation: local jets, when available, assume the traced base derivatives; this does not prove the geometry provider or outer wrapper.
@@ -0,0 +1,12 @@
Updates: WR-161
#### WR-161 (update, 2026-10-31). `Duvv` and `Dvvv` add `Buvv` / `Bvvv` by default
- **Location:** `source/SMLib/src/SmOffsetSurface.cpp:1482` and `:1491`, `SmOffsetSurface::EvaluatePlainOrSimple` (pinned v1.0.1); `crates/solidcore/src/surface/offset_surface.rs`.
- **What changed:** solidcore corrects exactly four third-order terms unconditionally. This record's two:
1. `Duvv` is written as `Buvv + d * Nuvv` (`d(1, 2)`), not `Buuv + d * Nuvv` (`d(2, 1)`).
2. `Dvvv` is written as `Bvvv + d * Nvvv` (`d(0, 3)`), not `Buuv + d * Nvvv` (`d(2, 1)`).
The other two, from `WR-160`, correct the `Cuuv` coefficient (`1.0`, not `3.0`) and the `Cuvv` coefficient (`-1.0`, not `3.0`). `Duuv`, `Duvv` and `Dvvv` can change; downstream effects are unmeasured. Sampled bits for orders 0..2 and `Duuu` are retained in a regression, not a universal bit-identity proof.
- **Evidence:** the new focused `surface::offset_surface::tests` build the biquadratic Bezier base `B(u, v) = (u + u^2 v, v + u v^2, u v)` through the public `BSplineSurface::from_data`, construct a public `OffsetSurface::new` and evaluate through the public `OffsetSurface::evaluate(uv, 3, 3, flags)` with `flags.only_upper_half = true` at two asymmetric UV points and `d = +0.125` / `-0.125`. The upper triangle contains derivatives with total order at most 3; this is not a full rectangular `(3, 3)` request, which exceeds the existing bound. The closed-form oracle is `B + d q / sqrt(L)`, `L = 1 + u^2 + v^2 + 6uv + 9u^2v^2`, checked to `1e-10` relative without an absolute floor. `Buvv = (0, 2, 0)` and `Bvvv = (0, 0, 0)` both differ from `Buuv = (2, 0, 0)`, so both wrong bases are caught: at `d = 0.125`, `uv = (0.25, 0.5)` the corrected `Suvv = (-0.073477204663, 1.884574138045, 0.009817341315)` and `Svvv = (-0.161697725660, 0.012630381645, 0.070751767665)`. The former default path visibly disagrees with both.
- **Still unfixed:** `WR-162` (upper-half, unequal-order second-derivative slot write) is separate and remains. No claim is made about `SM_API` higher derivatives or an end-to-end `CrvOnSurf` improvement; an in-kernel `CrvOnSurf` evaluator that reads the third partials can consume the corrected values, but no production case that does was measured.
- **Confirmed:** the default-kernel closed-form regression failed with exit 101 before fix `8ec4825280f7b2f9a41fc4183d609f8a080146e9`, then passed with the sampled unchanged-partial bit controls. The biquadratic counterexample itself has not been newly replayed in C++. The existing native fixture `third_derivative_outputs` was replayed at that fix: ten mismatches map only to corrected `Duvv`/`Dvvv` slots, including `out[50]` (`Dvvv.y`), C++ `-2.316474981309934` versus Rust `6.683525018690066`. The confirmed original WR-160/161 entries identify this fixture; its single `cpp_defect = "WR-161"` marker explains both defects. No other failing case is parked by this PR.
- **Limits:** the full offset diagnostic had 519 failures among 3,182 cases; after identifying that one fixture, 518 remain unparked and require individual attribution. The unequal-order upper-half slot problem remains, so a value changed by this correction is not by itself proof that the destination slot is correct. See `plan/findings/surface.offset_surface--default-third-derivatives-diagnostic-attribution.md`. The curve-on-surface diagnostic timed out without a summary. These are not native parity or caller-improvement claims.
File diff suppressed because it is too large Load Diff