The two-pass geometry pre-pass integrates the first --prepass-fraction
(0.5) of the sweep, but never less than 120 deg of rotation (header
oscillation), so a sweep up to 120 deg is pre-passed whole and one up to
240 deg gets 120 deg. Wider sweeps are unchanged. The range is computed
in one place, Rugnux::PrepassEnd.
Evidence (fraction sweep with the rc175-p1-baseline binary, 10 sweeps
of 360 deg and 10 of 180 deg; pre-pass distance vs the full-sweep fit):
median error 0.081 % at 90 deg, 0.042 % at 120, 0.042 % at 150 and
0.033 % at 180 on the 180-deg sweeps; 0.032 / 0.021 / 0.013 % at
120 / 150 / 180 deg on the 360-deg sweeps. 120 deg on a wide sweep
matches what the whole-sweep pre-pass gave a 180-deg sweep. Below
~60 deg the pre-pass misses the distance outright (6rym: held at the
header, 3.4 % off; 6vww and 6fwc: distance not freed). Merged quality
moves by under 1 % at any angle >= 90 deg.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SVmAWnzCmRKAXVUCdc4iNi