BiPrecond

Trait BiPrecond 

Source
pub trait BiPrecond<T: ComplexField>: Precond<T> + BiLinOp<T> {
    // Provided methods
    fn transpose_apply_in_place_scratch(
        &self,
        rhs_ncols: usize,
        par: Par,
    ) -> StackReq { ... }
    fn transpose_apply_in_place(
        &self,
        rhs: MatMut<'_, T>,
        par: Par,
        stack: &mut MemStack,
    ) { ... }
    fn adjoint_apply_in_place(
        &self,
        rhs: MatMut<'_, T>,
        par: Par,
        stack: &mut MemStack,
    ) { ... }
}
Expand description

preconditioner for a linear system that can bee applied from either the right or the left side

same as BiLinOp except that it can be applied in place.

Provided Methods§

Source

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

computes the workspace layout required to apply the transpose or adjoint of self to a matrix with rhs_ncols columns in place

Source

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

applies the transpose of self to rhs, and stores the result in rhs

Source

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

applies the adjoint of self to rhs, and stores the result in rhs

Implementations on Foreign Types§

Source§

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

Source§

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

Source§

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

Source§

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

Implementors§

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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