Trait SpSolver
pub trait SpSolver<E>: SpSolverCore<E>where
E: ComplexField,{
// Required methods
fn solve_in_place(&self, rhs: impl ColBatchMut<E>);
fn solve_conj_in_place(&self, rhs: impl ColBatchMut<E>);
fn solve_transpose_in_place(&self, rhs: impl ColBatchMut<E>);
fn solve_conj_transpose_in_place(&self, rhs: impl ColBatchMut<E>);
fn solve<ViewE, B>(&self, rhs: B) -> <B as ColBatch<ViewE>>::Owned
where ViewE: Conjugate<Canonical = E>,
B: ColBatch<ViewE>;
fn solve_conj<ViewE, B>(&self, rhs: B) -> <B as ColBatch<ViewE>>::Owned
where ViewE: Conjugate<Canonical = E>,
B: ColBatch<ViewE>;
fn solve_transpose<ViewE, B>(&self, rhs: B) -> <B as ColBatch<ViewE>>::Owned
where ViewE: Conjugate<Canonical = E>,
B: ColBatch<ViewE>;
fn solve_conj_transpose<ViewE, B>(
&self,
rhs: B,
) -> <B as ColBatch<ViewE>>::Owned
where ViewE: Conjugate<Canonical = E>,
B: ColBatch<ViewE>;
}
Expand description
Solver that can compute solution of a linear system.
Required Methods§
fn solve_in_place(&self, rhs: impl ColBatchMut<E>)
fn solve_in_place(&self, rhs: impl ColBatchMut<E>)
Solves the equation self * X = rhs
when self is square, and stores the result in rhs
.
fn solve_conj_in_place(&self, rhs: impl ColBatchMut<E>)
fn solve_conj_in_place(&self, rhs: impl ColBatchMut<E>)
Solves the equation conjugate(self) * X = rhs
when self is square, and stores the result
in rhs
.
fn solve_transpose_in_place(&self, rhs: impl ColBatchMut<E>)
fn solve_transpose_in_place(&self, rhs: impl ColBatchMut<E>)
Solves the equation transpose(self) * X = rhs
when self is square, and stores the result
in rhs
.
fn solve_conj_transpose_in_place(&self, rhs: impl ColBatchMut<E>)
fn solve_conj_transpose_in_place(&self, rhs: impl ColBatchMut<E>)
Solves the equation adjoint(self) * X = rhs
when self is square, and stores the result in
rhs
.
fn solve<ViewE, B>(&self, rhs: B) -> <B as ColBatch<ViewE>>::Owned
fn solve<ViewE, B>(&self, rhs: B) -> <B as ColBatch<ViewE>>::Owned
Solves the equation self * X = rhs
when self is square, and returns the result.
fn solve_conj<ViewE, B>(&self, rhs: B) -> <B as ColBatch<ViewE>>::Owned
fn solve_conj<ViewE, B>(&self, rhs: B) -> <B as ColBatch<ViewE>>::Owned
Solves the equation conjugate(self) * X = rhs
when self is square, and returns the result.
fn solve_transpose<ViewE, B>(&self, rhs: B) -> <B as ColBatch<ViewE>>::Owned
fn solve_transpose<ViewE, B>(&self, rhs: B) -> <B as ColBatch<ViewE>>::Owned
Solves the equation transpose(self) * X = rhs
when self is square, and returns the result.
fn solve_conj_transpose<ViewE, B>(
&self,
rhs: B,
) -> <B as ColBatch<ViewE>>::Owned
fn solve_conj_transpose<ViewE, B>( &self, rhs: B, ) -> <B as ColBatch<ViewE>>::Owned
Solves the equation adjoint(self) * X = rhs
when self is square, and returns the result.
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.