pub struct ForrestTomlin<T: Real> { /* private fields */ }Expand description
Forrest & Tomlin (1972): row etas and a permuted, modified U
(Algorithm U).
Trait Implementations§
Source§impl<T: Real> BasisUpdate<T> for ForrestTomlin<T>
impl<T: Real> BasisUpdate<T> for ForrestTomlin<T>
Source§fn update(
&mut self,
f: &mut Factors<T>,
opts: &LuOptions,
r: usize,
alpha_r: T,
) -> Result<UpdateOutcome, LuError>
fn update( &mut self, f: &mut Factors<T>, opts: &LuOptions, r: usize, alpha_r: T, ) -> Result<UpdateOutcome, LuError>
Algorithm U. Errors: LuError::Singular if the new basis is
singular, LuError::NoSpike without a recorded spike,
LuError::NotFactorized on an invalid factor,
LuError::Structure if r ≥ m. On every error, and on
RefactorReason::Unstable, the factor is left unchanged.
Source§fn apply_ftran(&self, y: &mut [T])
fn apply_ftran(&self, y: &mut [T])
Step F2.
Source§fn apply_btran(&self, w: &mut [T])
fn apply_btran(&self, w: &mut [T])
Step B2.
Source§fn apply_ftran_hyper(
&self,
y: &mut [T],
list: &mut Vec<u32>,
mark: &mut [u32],
stamp: u32,
queued: &mut [bool],
)
fn apply_ftran_hyper( &self, y: &mut [T], list: &mut Vec<u32>, mark: &mut [u32], stamp: u32, queued: &mut [bool], )
Step HF4: the row etas in creation order through a min-queue.
Source§fn apply_btran_hyper(
&self,
w: &mut [T],
list: &mut Vec<u32>,
mark: &mut [u32],
stamp: u32,
queued: &mut [bool],
)
fn apply_btran_hyper( &self, w: &mut [T], list: &mut Vec<u32>, mark: &mut [u32], stamp: u32, queued: &mut [bool], )
Step HB4: the row etas in reverse creation order through a max-queue.
Source§fn reset(&mut self, m: usize, update_growth: f64)
fn reset(&mut self, m: usize, update_growth: f64)
Forgets every update: called after each factorization of an
m × m basis, with the update growth of the fresh factors (0
after a failed factorization).Source§fn stats(&self) -> &UpdateStats
fn stats(&self) -> &UpdateStats
The counters since the last factorization.
Auto Trait Implementations§
impl<T> Forget for ForrestTomlin<T>
impl<T> Freeze for ForrestTomlin<T>
impl<T> RefUnwindSafe for ForrestTomlin<T>where
Vec<T>: RefUnwindSafe,
impl<T> Send for ForrestTomlin<T>
impl<T> Sync for ForrestTomlin<T>
impl<T> Unpin for ForrestTomlin<T>
impl<T> UnsafeUnpin for ForrestTomlin<T>where
Vec<T>: UnsafeUnpin,
impl<T> UnwindSafe for ForrestTomlin<T>where
Vec<T>: UnwindSafe,
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