pub struct Conditioning { /* private fields */ }Expand description
Conditioning of the problem.
Implementations§
Source§impl Conditioning
impl Conditioning
Sourcepub fn radius_of_gyration(&self) -> f64
pub fn radius_of_gyration(&self) -> f64
The radius of gyration: the characteristic length of the normalisation.
Sourcepub fn singular_values(&self) -> [f64; 6]
pub fn singular_values(&self) -> [f64; 6]
The normalised singular values, in decreasing order.
Sourcepub fn condition_number(&self) -> f64
pub fn condition_number(&self) -> f64
The condition number σ_max / σ_min.
Invariant to the scale of the scene and to the choice of units, which is exactly what the normalisation is for.
Sourcepub fn direction(&self, index: usize) -> Vector6<f64>
pub fn direction(&self, index: usize) -> Vector6<f64>
Direction number index in the normalised coordinates ξ'.
Sourcepub fn direction_in_world(&self, index: usize) -> Vector6<f64>
pub fn direction_in_world(&self, index: usize) -> Vector6<f64>
The same direction in the original coordinates ξ = [ρ; φ],
referred to the coordinate origin.
Undoes the normalisation (φ is divided by r_g) and moves the
centre of rotation from the centroid back to the origin through the
adjoint of that translation.
Sourcepub fn to_normalised(&self, world: Vector6<f64>) -> Vector6<f64>
pub fn to_normalised(&self, world: Vector6<f64>) -> Vector6<f64>
Converts a pose increment from world coordinates ξ = [ρ; φ] into
the normalised ξ' the spectrum is expressed in.
The inverse of direction_in_world:
first move the centre of rotation to the centroid, then scale the
rotational part by the radius of gyration. Needed to compare a
predicted spread against an empirical one — they must live in the
same coordinates.
Sourcepub fn component(&self, index: usize, world: Vector6<f64>) -> f64
pub fn component(&self, index: usize, world: Vector6<f64>) -> f64
Projection of a pose increment onto direction index, metres.
Sourcepub fn uncertainty(&self, noise_sigma: f64) -> [f64; 6]
pub fn uncertainty(&self, noise_sigma: f64) -> [f64; 6]
Standard deviation along each direction, metres.
σ_noise / σ'ᵢ. All six values share units: one unit of a
normalised coordinate is one metre of displacement, for rotations
too, at distance r_g from the centre.
The point count is accounted for automatically: σ'ᵢ grows as the
square root of the sum of weights, so the spread falls as 1/√N.
Sourcepub fn classify(&self, criteria: &ObservabilityCriteria) -> [Observability; 6]
pub fn classify(&self, criteria: &ObservabilityCriteria) -> [Observability; 6]
Classification of the six degrees of freedom.
Sourcepub fn unobservable_directions(
&self,
criteria: &ObservabilityCriteria,
) -> Vec<Vector6<f64>> ⓘ
pub fn unobservable_directions( &self, criteria: &ObservabilityCriteria, ) -> Vec<Vector6<f64>> ⓘ
Directions judged unobservable, in ξ coordinates relative to the
origin.
Trait Implementations§
Source§impl Clone for Conditioning
impl Clone for Conditioning
Source§fn clone(&self) -> Conditioning
fn clone(&self) -> Conditioning
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for Conditioning
impl RefUnwindSafe for Conditioning
impl Send for Conditioning
impl Sync for Conditioning
impl Unpin for Conditioning
impl UnsafeUnpin for Conditioning
impl UnwindSafe for Conditioning
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§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).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.