Skip to main content

LinearOpTranspose

Trait LinearOpTranspose 

Source
pub trait LinearOpTranspose: LinearOp {
    // Required method
    fn gemv_transpose_inplace(
        &self,
        _x: &Self::V,
        _t: Self::T,
        _beta: Self::T,
        _y: &mut Self::V,
    );

    // Provided methods
    fn call_transpose_inplace(&self, x: &Self::V, t: Self::T, y: &mut Self::V) { ... }
    fn transpose_inplace(&self, t: Self::T, y: &mut Self::M) { ... }
    fn _default_transpose_inplace(&self, t: Self::T, y: &mut Self::M) { ... }
    fn transpose_sparsity(&self) -> Option<<Self::M as Matrix>::Sparsity> { ... }
}

Required Methods§

Source

fn gemv_transpose_inplace( &self, _x: &Self::V, _t: Self::T, _beta: Self::T, _y: &mut Self::V, )

Compute the transpose of the operator via a GEMV operation (i.e. y = A(t)^T * x + beta * y)

Provided Methods§

Source

fn call_transpose_inplace(&self, x: &Self::V, t: Self::T, y: &mut Self::V)

Compute the transpose of the operator y = A(t)^T * x at a given state and time, the default implementation uses Self::gemv_transpose_inplace.

Source

fn transpose_inplace(&self, t: Self::T, y: &mut Self::M)

Compute the matrix representation of the transpose of the operator A(t)^T and store it in the matrix y. The default implementation of this method computes the matrix using Self::gemv_transpose_inplace, but it can be overriden for more efficient implementations.

Source

fn _default_transpose_inplace(&self, t: Self::T, y: &mut Self::M)

Default implementation of the tranpose computation, see Self::transpose_inplace.

Source

fn transpose_sparsity(&self) -> Option<<Self::M as Matrix>::Sparsity>

Implementations on Foreign Types§

Source§

impl<C: LinearOpTranspose> LinearOpTranspose for &C

Source§

fn gemv_transpose_inplace( &self, x: &Self::V, t: Self::T, beta: Self::T, y: &mut Self::V, )

Source§

fn transpose_inplace(&self, t: Self::T, y: &mut Self::M)

Source§

fn transpose_sparsity(&self) -> Option<<Self::M as Matrix>::Sparsity>

Implementors§

Source§

impl<M, F, G> LinearOpTranspose for ParameterisedOp<'_, LinearClosureWithAdjoint<M, F, G>>
where M: Matrix, F: Fn(&M::V, &M::V, M::T, M::T, &mut M::V), G: Fn(&M::V, &M::V, M::T, M::T, &mut M::V),

Source§

impl<M: Matrix> LinearOpTranspose for ParameterisedOp<'_, UnitCallable<M>>

Source§

impl<M: Matrix> LinearOpTranspose for UnitCallable<M>

Source§

impl<M: MatrixHost<T: DiffSlScalar>, CG: CodegenModule> LinearOpTranspose for DiffSlMass<'_, M, CG>