LinearOperator

Trait LinearOperator 

Source
pub trait LinearOperator<V, W = V> {
    // Required methods
    fn apply(&self, x: &V) -> Result<W>;
    fn domain_dimension(&self) -> Option<usize>;
    fn codomain_dimension(&self) -> Option<usize>;
}
Expand description

A linear operator between vector spaces.

A linear operator T: V → W satisfies:

  • T(x + y) = T(x) + T(y)
  • T(αx) = αT(x)

§Type Parameters

  • V - Domain space element type
  • W - Codomain space element type

Required Methods§

Source

fn apply(&self, x: &V) -> Result<W>

Apply the operator to an element.

Source

fn domain_dimension(&self) -> Option<usize>

Get the domain dimension (None if infinite).

Source

fn codomain_dimension(&self) -> Option<usize>

Get the codomain dimension (None if infinite).

Implementors§

Source§

impl<S, T, V, W, U> LinearOperator<V, U> for CompositeOperator<S, T, V, W, U>
where S: LinearOperator<W, U>, T: LinearOperator<V, W>,

Source§

impl<const P: usize, const Q: usize, const R: usize> LinearOperator<Multivector<P, Q, R>> for CompactMatrixOperator<P, Q, R>

Source§

impl<const P: usize, const Q: usize, const R: usize> LinearOperator<Multivector<P, Q, R>> for FiniteRankOperator<P, Q, R>

Source§

impl<const P: usize, const Q: usize, const R: usize> LinearOperator<Multivector<P, Q, R>> for FredholmMatrixOperator<P, Q, R>

Source§

impl<const P: usize, const Q: usize, const R: usize> LinearOperator<Multivector<P, Q, R>> for IdentityOperator<Multivector<P, Q, R>>

Source§

impl<const P: usize, const Q: usize, const R: usize> LinearOperator<Multivector<P, Q, R>> for MatrixOperator<P, Q, R>

Source§

impl<const P: usize, const Q: usize, const R: usize> LinearOperator<Multivector<P, Q, R>> for ProjectionOperator<P, Q, R>

Source§

impl<const P: usize, const Q: usize, const R: usize> LinearOperator<Multivector<P, Q, R>> for ScalingOperator<Multivector<P, Q, R>>

Source§

impl<const P: usize, const Q: usize, const R: usize> LinearOperator<Multivector<P, Q, R>> for ZeroOperator<Multivector<P, Q, R>>