Precond

Trait Precond 

Source
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§

Source

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

Source

fn apply_in_place(&self, rhs: MatMut<'_, T>, par: Par, stack: &mut MemStack)

applies self to rhs, and stores the result in rhs

Source

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

Implementations on Foreign Types§

Source§

impl<T: ComplexField, M: Sized + Precond<T>> Precond<T> for &M

Source§

fn apply_in_place_scratch(&self, rhs_ncols: usize, par: Par) -> StackReq

Source§

fn apply_in_place(&self, rhs: MatMut<'_, T>, par: Par, stack: &mut MemStack)

Source§

fn conj_apply_in_place( &self, rhs: MatMut<'_, T>, par: Par, stack: &mut MemStack, )

Implementors§

Source§

impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T> for SparseColMat<I, ViewT>

Source§

impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T> for SparseColMatMut<'_, I, ViewT>

Source§

impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T> for SparseRowMat<I, ViewT>

Source§

impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T> for SparseRowMatMut<'_, I, ViewT>

Source§

impl<T: ComplexField> Precond<T> for IdentityPrecond

Source§

impl<T: ComplexField, I: Index, ViewT: Conjugate<Canonical = T>> Precond<T> for SparseColMatRef<'_, I, ViewT>

Source§

impl<T: ComplexField, I: Index, ViewT: Conjugate<Canonical = T>> Precond<T> for SparseRowMatRef<'_, I, ViewT>

Source§

impl<T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T> for Diag<ViewT>

Source§

impl<T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T> for DiagMut<'_, ViewT>

Source§

impl<T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T> for DiagRef<'_, ViewT>

Source§

impl<T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T> for Mat<ViewT>

Source§

impl<T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T> for MatMut<'_, ViewT>

Source§

impl<T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T> for MatRef<'_, ViewT>