pub trait Precond<T: ComplexField>: LinOp<T> {
// Provided methods
fn apply_in_place_scratch(&self, rhs_ncols: usize, par: Par) -> StackReq { ... }
fn apply_in_place(&self, rhs: MatMut<'_, T>, par: Par, stack: &mut MemStack) { ... }
fn conj_apply_in_place(
&self,
rhs: MatMut<'_, T>,
par: Par,
stack: &mut MemStack,
) { ... }
}Expand description
preconditioner for a linear system
same as LinOp except that it can be applied in place
Provided Methods§
Sourcefn apply_in_place_scratch(&self, rhs_ncols: usize, par: Par) -> StackReq
fn apply_in_place_scratch(&self, rhs_ncols: usize, par: Par) -> StackReq
computes the workspace size and alignment required to apply self or the conjugate of
self to a matrix with rhs_ncols columns in place
Sourcefn apply_in_place(&self, rhs: MatMut<'_, T>, par: Par, stack: &mut MemStack)
fn apply_in_place(&self, rhs: MatMut<'_, T>, par: Par, stack: &mut MemStack)
applies self to rhs, and stores the result in rhs
Sourcefn conj_apply_in_place(
&self,
rhs: MatMut<'_, T>,
par: Par,
stack: &mut MemStack,
)
fn conj_apply_in_place( &self, rhs: MatMut<'_, T>, par: Par, stack: &mut MemStack, )
applies the conjugate of self to rhs, and stores the result in rhs