pub struct SmoothingReport {
pub axes: Vec<usize>,
pub segments: usize,
pub interpolated_segments: usize,
pub refinements: usize,
pub fitting_rows: usize,
pub checked_intervals: usize,
pub max_errors: Vec<f64>,
}Expand description
Diagnostics recorded while constructing a smoothed waypoint path.
Obtain this report with Path::smoothing_report.
axes, segments, and interpolated_segments describe the final
representation. refinements records completed passes, while fitting_rows
and checked_intervals accumulate work from the initial construction and
subsequent local refinement. These values help explain tolerance cost and
budget usage; they are not optimality or run-time guarantees.
In exact arithmetic, the Bernstein convex-hull property supplies a sufficient
whole-interval bound. max_errors records the corresponding values computed
in physical input units with ordinary floating-point arithmetic rather than
outward-rounded interval arithmetic; they are numerical audit results, not
formal certificates or Cartesian/FK errors.
Fields§
§axes: Vec<usize>Selected input-row indices, in tolerance/report order.
segments: usizeNumber of final polynomial spans shared by the selected axes.
This count is not guaranteed to be minimal or monotone as tolerance changes because initial knot placement and refinement are adaptive.
interpolated_segments: usizeNumber of spans in the separate unselected-axis interpolant.
This is zero when every axis is selected and is not included in
SmoothingReport::segments or the configured segment budget.
refinements: usizeNumber of completed local knot-refinement passes.
fitting_rows: usizeNumber of discrete or quadrature fitting rows assembled.
Rows assembled again during local refits are counted again; this is a work statistic, not the number of distinct input points. Quadrature rows used only for the third-derivative penalty are not included.
checked_intervals: usizeNumber of reference-polyline intervals visited by numerical audits.
Revisited intervals and the final physical-unit full audit are included.
max_errors: Vec<f64>Final whole-domain numerical absolute-error bound for each selected axis.
Values use physical input units and follow SmoothingReport::axes
order. They are Bernstein-derived numerical bounds, not sampled maxima
or outward-rounded certificates.
Trait Implementations§
Source§impl Clone for SmoothingReport
impl Clone for SmoothingReport
Source§fn clone(&self) -> SmoothingReport
fn clone(&self) -> SmoothingReport
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for SmoothingReport
impl RefUnwindSafe for SmoothingReport
impl Send for SmoothingReport
impl Sync for SmoothingReport
impl Unpin for SmoothingReport
impl UnwindSafe for SmoothingReport
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.