Settle out-of-band roll-heights from a same-roll adjacent frame (#74) - #76
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0115csb82i78r86GWFzwPzis
Tests fail against the current table: bc5596 26212 and bcb98013 97924 are still excluded. Contract grows a witness column and leading-digit causes. Relates to #74 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0115csb82i78r86GWFzwPzis
Stage 5b of height_calibrate-lower_tail_rolls.R adds a third witness: a frame one number away on the same roll, lens and scale, itself in band, whose height the catalogue's stands in an exact relation to (x10, /10, /100, x10.764, one leading digit). Run over all 521 roll-heights the logbook rule left excluded, it settles 5 (138 frames): bc5596 and bcb98013 from the issue, and bc7675, bc87070, bcc822 in the lower tail. Exact is what storing whole metres of a 0.3048 conversion can do, rounded or truncated: big - k small in [-(1 + k/2), k + 1/2]. At 2%, bc5596's two neighbours name different relations and the control stops. The rolls table gains witness and sibling_frame; the excluded table gains sibling_reason. fly_footprint() logic is unchanged. Relates to #74 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0115csb82i78r86GWFzwPzis
The terrain-correction note gains a fly#74 section: the rule, why the tolerance is the catalogue's storage (bc5596's two neighbours; the truncation correction after review), the five roll-heights it settles, what it refuses and what it cannot do. The vignette's roll-table count moves from 28 to 33. Relates to #74 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0115csb82i78r86GWFzwPzis
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0115csb82i78r86GWFzwPzis
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
flying_height: where no logbook settles a roll-height, a frame one number away on the same roll, lens and scale, itself in band, whose height the catalogue's stands in an exact relation to (×10, ÷10, ÷100, ×10.764, one leading digit), settles it at that neighbour's height. Spacing must agree, and a logbook vetoes it only by naming a different factor. Stage 5b ofdata-raw/height_calibrate-lower_tail_rolls.R;fly_footprint()logic unchanged.bc5596204–211 (26,212 → 2,621 m) andbcb98013frame 52 (97,924 → 7,924 m) from the issue, plusbc7675609 → 6,096,bc87070396 → 3,962 andbcc822701 → 7,010 in the lower tail. A logbook row the logbook rule could not accept corroborates each lower-tail row.flying_height_rolls.csvgainswitnessandsibling_frame, and_excluded.csvgainssibling_reason. The table now reaches 1,438 frames; 1,281 slipped frames stay on ÷10.764.Related Issues
The tolerance, which is the load-bearing part
bc5596204–211 sit between 2,621 m (×10 to 2 m) and 2,438 m (×10.764 to 30 m, 0.12%). At 2% both neighbours name a relation and they name different ones. The bound comes from how the catalogue stores a 0.3048 conversion (whole metres, rounded or truncated): big − k·small ∈ [−(1 + k/2), k + 1/2]. Loosening it makes the generator's control stop; this was shown by mutation, with the CSVs left untouched.Two corrections were made during the run, recorded in the note and the archive README:
bc7675is now tabled.A 3.28 ft/m storage also exists, found in round 4. It can only cause refusals, so it is documented rather than widened. Round 4 enumerated all 3,876 neighbour-relation pairs and found none near any bound.
Test plan
devtools::test()passes: FAIL 0 / PASS 2397 (NOT_CRAN=true)> 1(2), 2% tolerance (the generator stops)/code-check: four rounds, ended by enumerationNotes
The issue body was edited to record the two-neighbour finding and the rule that was adopted. Nothing moves
DESCRIPTION; the version bump is left to/gh-pr-merge.🤖 Generated with Claude Code
https://claude.ai/code/session_0115csb82i78r86GWFzwPzis