Trait extendr_api::prelude::sparse::linalg::solvers::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>)

Solves the equation self * X = rhs, and stores the result in rhs.

fn solve_conj_in_place(&self, rhs: impl ColBatchMut<E>)

Solves the equation conjugate(self) * X = rhs, and stores the result in rhs.

fn solve_transpose_in_place(&self, rhs: impl ColBatchMut<E>)

Solves the equation transpose(self) * X = rhs, and stores the result in rhs.

fn solve_conj_transpose_in_place(&self, rhs: impl ColBatchMut<E>)

Solves the equation adjoint(self) * X = rhs, and stores the result in rhs.

fn solve<ViewE, B>(&self, rhs: B) -> <B as ColBatch<ViewE>>::Owned
where ViewE: Conjugate<Canonical = E>, B: ColBatch<ViewE>,

Solves the equation self * X = rhs, and returns the result.

fn solve_conj<ViewE, B>(&self, rhs: B) -> <B as ColBatch<ViewE>>::Owned
where ViewE: Conjugate<Canonical = E>, B: ColBatch<ViewE>,

Solves the equation conjugate(self) * X = rhs, and returns the result.

fn solve_transpose<ViewE, B>(&self, rhs: B) -> <B as ColBatch<ViewE>>::Owned
where ViewE: Conjugate<Canonical = E>, B: ColBatch<ViewE>,

Solves the equation transpose(self) * X = rhs, and returns the result.

fn solve_conj_transpose<ViewE, B>( &self, rhs: B, ) -> <B as ColBatch<ViewE>>::Owned
where ViewE: Conjugate<Canonical = E>, B: ColBatch<ViewE>,

Solves the equation adjoint(self) * X = rhs, and returns the result.

Object Safety§

This trait is not object safe.

Implementors§

§

impl<E, Dec> SpSolver<E> for Dec
where E: ComplexField, Dec: SpSolverCore<E> + ?Sized,