pub trait LinearOperator {
type Elem: Scalar;
// Provided methods
fn apply<S>(
&self,
a: &ArrayBase<S, Dim<[usize; 1]>>,
) -> ArrayBase<OwnedRepr<<S as RawData>::Elem>, Dim<[usize; 1]>>
where S: Data<Elem = Self::Elem> { ... }
fn apply_mut<S>(&self, a: &mut ArrayBase<S, Dim<[usize; 1]>>)
where S: DataMut<Elem = Self::Elem> { ... }
fn apply_into<S>(
&self,
a: ArrayBase<S, Dim<[usize; 1]>>,
) -> ArrayBase<S, Dim<[usize; 1]>>
where S: DataOwned<Elem = Self::Elem> + DataMut { ... }
fn apply2<S>(
&self,
a: &ArrayBase<S, Dim<[usize; 2]>>,
) -> ArrayBase<OwnedRepr<<S as RawData>::Elem>, Dim<[usize; 2]>>
where S: Data<Elem = Self::Elem> { ... }
fn apply2_mut<S>(&self, a: &mut ArrayBase<S, Dim<[usize; 2]>>)
where S: DataMut<Elem = Self::Elem> { ... }
fn apply2_into<S>(
&self,
a: ArrayBase<S, Dim<[usize; 2]>>,
) -> ArrayBase<S, Dim<[usize; 2]>>
where S: DataOwned<Elem = Self::Elem> + DataMut { ... }
}Expand description
Abstracted linear operator as an action to vector (ArrayBase<S, Ix1>) and matrix
(ArrayBase<S, Ix2)
Required Associated Types§
Provided Methods§
Sourcefn apply<S>(
&self,
a: &ArrayBase<S, Dim<[usize; 1]>>,
) -> ArrayBase<OwnedRepr<<S as RawData>::Elem>, Dim<[usize; 1]>>
fn apply<S>( &self, a: &ArrayBase<S, Dim<[usize; 1]>>, ) -> ArrayBase<OwnedRepr<<S as RawData>::Elem>, Dim<[usize; 1]>>
Apply operator out-place
Sourcefn apply_into<S>(
&self,
a: ArrayBase<S, Dim<[usize; 1]>>,
) -> ArrayBase<S, Dim<[usize; 1]>>
fn apply_into<S>( &self, a: ArrayBase<S, Dim<[usize; 1]>>, ) -> ArrayBase<S, Dim<[usize; 1]>>
Apply operator with move
Sourcefn apply2<S>(
&self,
a: &ArrayBase<S, Dim<[usize; 2]>>,
) -> ArrayBase<OwnedRepr<<S as RawData>::Elem>, Dim<[usize; 2]>>
fn apply2<S>( &self, a: &ArrayBase<S, Dim<[usize; 2]>>, ) -> ArrayBase<OwnedRepr<<S as RawData>::Elem>, Dim<[usize; 2]>>
Apply operator to matrix out-place
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.