Repository navigation
Every step a track takes is at most max_step_size, the first one included - #509
Merged
ofloveandhate merged 1 commit intoOct 12, 2026
Conversation
…uded (bertiniteam#508) A track opened with initial_step_size whatever max_step_size said, and max_step_size bounded only the step's growth, so with max_step_size 1e-3 and the default initial step of 1/10 the adaptive tracker took 17 steps above the maximum before reaching it. A track now opens with Tracker::FirstStepSize(), the smaller of the two; with the defaults nothing changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
Good to catch this. Found while working on some stuff related to the barth decic, where paths come very near each other and a smaller stepsize prevents path crossings. |
ofloveandhate
commented
Oct 12, 2026
ofloveandhate
left a comment
Contributor
Author
There was a problem hiding this comment.
yep, it's correct
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.
Fixes #508.
max_step_sizebounded only the growth of a tracker's step. Each track opened withinitial_step_size, whatevermax_step_sizesaid. Withmax_step_size1e-3 and the defaultinitial_step_size1/10, the adaptive tracker took 17 steps above the maximum before reaching it: six of 0.1, six of 0.05, then halving down. A caller that lowersmax_step_sizeto cross a stretch of the path in small steps got that stretch crossed in one step. In the cellular decomposition that prompted this, two real branches pass about 5e-4 apart, and the path landed on the wrong one.A track now opens with
Tracker::FirstStepSize(), the smaller ofinitial_step_sizeandmax_step_size, still limited by|t1 - t0| / min_num_stepsas before. The AMP tracker and both fixed-precision trackers use it, and so doesTracker::Setup. With the default settings both are 1/10, so default tracks don't change.Tests:
every_step_is_at_most_the_max_step_size_the_first_included(AMP) checks every step of a track undermax_step_size1/1000.the_first_step_is_at_most_the_max_step_sizechecks the first step of the double and the multiple-precision fixed trackers, which never grow their step. Both fail without the fix: the AMP case reports 17 steps above the maximum.No ADR: this is a bug fix with a regression test.
🤖 Generated with Claude Code