pub struct Residual<M>{
pub epoch: Epoch,
pub prefit: OVector<f64, M>,
pub postfit: OVector<f64, M>,
pub ratio: f64,
pub tracker_msr_noise: OVector<f64, M>,
pub rejected: bool,
pub tracker: Option<String>,
}
Expand description
Stores an Estimate, as the result of a time_update
or measurement_update
.
Fields§
§epoch: Epoch
Date time of this Residual
prefit: OVector<f64, M>
The prefit residual in the units of the measurement type
postfit: OVector<f64, M>
The postfit residual in the units of the measurement type
ratio: f64
The prefit residual ratio computed as the Mahalanobis distance, i.e. it is always positive
and computed as r' * (H*P*H')^-1 * r
, where r
is the prefit residual, H
is the sensitivity matrix, and P
is the covariance matrix.
To assess the performance, look at the Chi Square distribution for the number of measurements, e.g. 2 for range and range-rate.
tracker_msr_noise: OVector<f64, M>
The tracker measurement noise (variance)) for this tracker at this time.
rejected: bool
Whether or not this was rejected
tracker: Option<String>
Name of the tracker that caused this residual
Implementations§
Source§impl<M> Residual<M>
impl<M> Residual<M>
Sourcepub fn zeros() -> Self
pub fn zeros() -> Self
An empty estimate. This is useful if wanting to store an estimate outside the scope of a filtering loop.
Sourcepub fn rejected(
epoch: Epoch,
prefit: OVector<f64, M>,
ratio: f64,
tracker_msr_covar: OVector<f64, M>,
) -> Self
pub fn rejected( epoch: Epoch, prefit: OVector<f64, M>, ratio: f64, tracker_msr_covar: OVector<f64, M>, ) -> Self
Flags a Residual as rejected.
pub fn accepted( epoch: Epoch, prefit: OVector<f64, M>, postfit: OVector<f64, M>, ratio: f64, tracker_msr_covar: OVector<f64, M>, ) -> Self
Trait Implementations§
impl<M> StructuralPartialEq for Residual<M>
Auto Trait Implementations§
impl<M> !Freeze for Residual<M>
impl<M> !RefUnwindSafe for Residual<M>
impl<M> !Send for Residual<M>
impl<M> !Sync for Residual<M>
impl<M> !Unpin for Residual<M>
impl<M> !UnwindSafe for Residual<M>
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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.