extendr_api::prelude::solvers

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>)

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>)

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>)

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>)

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
where ViewE: Conjugate<Canonical = E>, B: ColBatch<ViewE>,

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
where ViewE: Conjugate<Canonical = E>, B: ColBatch<ViewE>,

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
where ViewE: Conjugate<Canonical = E>, B: ColBatch<ViewE>,

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
where ViewE: Conjugate<Canonical = E>, B: ColBatch<ViewE>,

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.

Implementors§

§

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