pub struct CovarianceGuards {
pub cov_max: f32,
pub cov_min: f32,
pub max_order_decrement: f32,
}Expand description
Numerical guard configuration for the standard (covariance-form) RLS.
These guards prevent numerical instability that arises from maintaining
the covariance matrix P directly. The inverse QR-RLS does not need
these guards because it works with the information matrix factor, where
updates involve only additions (never subtractions).
Default values match the indiflight C reference implementation.
Fields§
§cov_max: f32Maximum allowed diagonal value in P.
When any P[i,i] exceeds this threshold, the forgetting factor λ
is temporarily increased toward 1.0 to slow covariance growth.
Default: 1e10 (matches RLS_COV_MAX in indiflight).
cov_min: f32Minimum threshold for trace/diagonal ratio checks.
Guards against division by very small numbers in the order decrement limiting logic.
Default: 1e-10 (matches RLS_COV_MIN in indiflight).
max_order_decrement: f32Maximum relative trace reduction per update step.
Limits how much trace(P) can decrease in a single update,
preventing numerical instability from aggressive rank-1 updates.
A value of 0.1 means at most 10% of the trace can be removed
per step.
Default: 0.1 (matches RLS_MAX_P_ORDER_DECREMENT in indiflight).
Trait Implementations§
Source§impl Clone for CovarianceGuards
impl Clone for CovarianceGuards
Source§fn clone(&self) -> CovarianceGuards
fn clone(&self) -> CovarianceGuards
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CovarianceGuards
impl Debug for CovarianceGuards
Source§impl Default for CovarianceGuards
impl Default for CovarianceGuards
impl Copy for CovarianceGuards
Auto Trait Implementations§
impl Freeze for CovarianceGuards
impl RefUnwindSafe for CovarianceGuards
impl Send for CovarianceGuards
impl Sync for CovarianceGuards
impl Unpin for CovarianceGuards
impl UnsafeUnpin for CovarianceGuards
impl UnwindSafe for CovarianceGuards
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<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.