pub struct RankReport {
pub rows: Vec<RankRow>,
pub n_cols: usize,
pub singular_values: Vec<Number>,
pub tol: Number,
pub rank: usize,
pub cond: Number,
pub culprits: Vec<RankCulprit>,
}Expand description
Numerical rank diagnosis of the active-constraint Jacobian at one iterate. See the module docs for the underlying SVD analysis.
Fields§
§rows: Vec<RankRow>The active rows analyzed, in block order (currently the equality
block J_c). rows[i] is the identity of dense row i.
n_cols: usizeNumber of variables (columns of the analyzed block).
singular_values: Vec<Number>Singular values, nonincreasing.
tol: NumberNumerical-rank threshold τ = σ_max · max(m, n) · ε.
rank: usizeNumerical rank (count of σ > τ).
cond: NumberCondition number σ_max / σ_min (∞ if σ_min == 0).
culprits: Vec<RankCulprit>Rows participating in the near-null space, sorted by weight descending. Empty when the block has full row rank.
Implementations§
Source§impl RankReport
impl RankReport
Sourcepub fn deficiency(&self) -> usize
pub fn deficiency(&self) -> usize
Row-rank deficiency m − rank — the number of dependent rows.
Sourcepub fn is_rank_deficient(&self) -> bool
pub fn is_rank_deficient(&self) -> bool
Whether the analyzed block is (numerically) row-rank-deficient.
Trait Implementations§
Source§impl Clone for RankReport
impl Clone for RankReport
Source§fn clone(&self) -> RankReport
fn clone(&self) -> RankReport
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for RankReport
impl RefUnwindSafe for RankReport
impl Send for RankReport
impl Sync for RankReport
impl Unpin for RankReport
impl UnsafeUnpin for RankReport
impl UnwindSafe for RankReport
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T, U> Imply<T> for U
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
Converts
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>
Converts
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