pub struct SparseSchurComplementSolver { /* private fields */ }Expand description
Sparse Schur Complement Solver for Bundle Adjustment
Implementations§
Source§impl SparseSchurComplementSolver
impl SparseSchurComplementSolver
pub fn new() -> Self
pub fn with_ordering(self, ordering: SchurOrdering) -> Self
pub fn with_variant(self, variant: SchurVariant) -> Self
pub fn with_preconditioner(self, preconditioner: SchurPreconditioner) -> Self
pub fn with_cg_params(self, max_iter: usize, tol: f64) -> Self
pub fn block_structure(&self) -> Option<&SchurBlockStructure>
Trait Implementations§
Source§impl Clone for SparseSchurComplementSolver
impl Clone for SparseSchurComplementSolver
Source§fn clone(&self) -> SparseSchurComplementSolver
fn clone(&self) -> SparseSchurComplementSolver
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SparseSchurComplementSolver
impl Debug for SparseSchurComplementSolver
Source§impl StructuredSparseLinearSolver for SparseSchurComplementSolver
impl StructuredSparseLinearSolver for SparseSchurComplementSolver
Source§fn initialize_structure(
&mut self,
variables: &HashMap<String, VariableEnum>,
variable_index_map: &HashMap<String, usize>,
) -> LinAlgResult<()>
fn initialize_structure( &mut self, variables: &HashMap<String, VariableEnum>, variable_index_map: &HashMap<String, usize>, ) -> LinAlgResult<()>
Initialize the solver’s block structure from problem variables. Read more
Source§fn solve_normal_equation(
&mut self,
residuals: &Mat<f64>,
jacobians: &SparseColMat<usize, f64>,
) -> LinAlgResult<Mat<f64>>
fn solve_normal_equation( &mut self, residuals: &Mat<f64>, jacobians: &SparseColMat<usize, f64>, ) -> LinAlgResult<Mat<f64>>
Solve the normal equation: (J^T * J) * dx = -J^T * r
Source§fn solve_augmented_equation(
&mut self,
residuals: &Mat<f64>,
jacobians: &SparseColMat<usize, f64>,
lambda: f64,
) -> LinAlgResult<Mat<f64>>
fn solve_augmented_equation( &mut self, residuals: &Mat<f64>, jacobians: &SparseColMat<usize, f64>, lambda: f64, ) -> LinAlgResult<Mat<f64>>
Solve the augmented equation: (J^T * J + λI) * dx = -J^T * r
Source§fn get_hessian(&self) -> Option<&SparseColMat<usize, f64>>
fn get_hessian(&self) -> Option<&SparseColMat<usize, f64>>
Get the cached Hessian matrix
Auto Trait Implementations§
impl Freeze for SparseSchurComplementSolver
impl RefUnwindSafe for SparseSchurComplementSolver
impl Send for SparseSchurComplementSolver
impl Sync for SparseSchurComplementSolver
impl Unpin for SparseSchurComplementSolver
impl UnwindSafe for SparseSchurComplementSolver
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,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
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 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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.