pub enum PcurveFitExit {
Converged,
SampleCeiling,
RoundBudget,
Stalled,
SpanFloor,
}Expand description
Why a pcurve refinement stopped. Only PcurveFitExit::Converged means the
floor was met; every other variant is a BUDGET exit, and the report’s
residual was measured on the returned curve rather than assumed.
Variants§
Converged
A probe round found every station within the floor. An affine carrier maps exactly and reports this with a zero residual.
SampleCeiling
The sample ceiling bound before the floor was met: [MAX_PCURVE_SAMPLES]
when the raise was declined (the residual is already explained by
PcurveFitReport::off_surface), [PCURVE_RAISED_SAMPLES] when it was
taken and bound too.
RoundBudget
Every refinement round was spent and the last one still inserted samples, so the curve it built was never re-checked by the loop.
Stalled
A round found stations over the floor but could improve none of them: the edge point could not be inverted inside the drop band, or (in the raised pass) the pcurve already tracks the surface’s nearest point to within the floor. Either way the edge curve itself sits off the surface there and no pcurve can close that gap; the residual reports how far.
SpanFloor
The last probe round found every span it PROBED within the floor, but
skipped spans narrower than the loop’s own resolution floor — 1e-3 of
the parameter range in [refine_pcurve], [SPAN_FLOOR] (1e-6) in
fit_pcurve_on_surface_stations — and a sweep over those found the
floor unmet.
Until 2026-09-12 this exit was reported as Converged with the probed
spans’ maximum: on 25_cube_pierce_solid a 1539-sample fit with 1537
narrow spans read 7e-8 that way while every span read 1.9e-4.
Trait Implementations§
Source§impl Clone for PcurveFitExit
impl Clone for PcurveFitExit
impl Copy for PcurveFitExit
Source§impl Debug for PcurveFitExit
impl Debug for PcurveFitExit
impl Eq for PcurveFitExit
Source§impl Hash for PcurveFitExit
impl Hash for PcurveFitExit
Source§impl PartialEq for PcurveFitExit
impl PartialEq for PcurveFitExit
impl StructuralPartialEq for PcurveFitExit
Auto Trait Implementations§
impl Freeze for PcurveFitExit
impl RefUnwindSafe for PcurveFitExit
impl Send for PcurveFitExit
impl Sync for PcurveFitExit
impl Unpin for PcurveFitExit
impl UnsafeUnpin for PcurveFitExit
impl UnwindSafe for PcurveFitExit
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.