ndarray_linalg::solveh

Trait SolveH

source
pub trait SolveH<A: Scalar> {
    // Required method
    fn solveh_inplace<'a, S: DataMut<Elem = A>>(
        &self,
        b: &'a mut ArrayBase<S, Ix1>,
    ) -> Result<&'a mut ArrayBase<S, Ix1>>;

    // Provided methods
    fn solveh<S: Data<Elem = A>>(
        &self,
        b: &ArrayBase<S, Ix1>,
    ) -> Result<Array1<A>> { ... }
    fn solveh_into<S: DataMut<Elem = A>>(
        &self,
        b: ArrayBase<S, Ix1>,
    ) -> Result<ArrayBase<S, Ix1>> { ... }
}
Expand description

An interface for solving systems of Hermitian (or real symmetric) linear equations.

If you plan to solve many equations with the same Hermitian (or real symmetric) coefficient matrix A but different b vectors, it’s faster to factor the A matrix once using the FactorizeH trait, and then solve using the BKFactorized struct.

Required Methods§

source

fn solveh_inplace<'a, S: DataMut<Elem = A>>( &self, b: &'a mut ArrayBase<S, Ix1>, ) -> Result<&'a mut ArrayBase<S, Ix1>>

Solves a system of linear equations A * x = b with Hermitian (or real symmetric) matrix A, where A is self, b is the argument, and x is the successful result. The value of x is also assigned to the argument.

§Panics

Panics if the length of b is not the equal to the number of columns of A.

Provided Methods§

source

fn solveh<S: Data<Elem = A>>(&self, b: &ArrayBase<S, Ix1>) -> Result<Array1<A>>

Solves a system of linear equations A * x = b with Hermitian (or real symmetric) matrix A, where A is self, b is the argument, and x is the successful result.

§Panics

Panics if the length of b is not the equal to the number of columns of A.

source

fn solveh_into<S: DataMut<Elem = A>>( &self, b: ArrayBase<S, Ix1>, ) -> Result<ArrayBase<S, Ix1>>

Solves a system of linear equations A * x = b with Hermitian (or real symmetric) matrix A, where A is self, b is the argument, and x is the successful result.

§Panics

Panics if the length of b is not the equal to the number of columns of A.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<A, S> SolveH<A> for ArrayBase<S, Ix2>
where A: Scalar + Lapack, S: Data<Elem = A>,

source§

fn solveh_inplace<'a, Sb>( &self, rhs: &'a mut ArrayBase<Sb, Ix1>, ) -> Result<&'a mut ArrayBase<Sb, Ix1>>
where Sb: DataMut<Elem = A>,

Implementors§

source§

impl<A, S> SolveH<A> for BKFactorized<S>
where A: Scalar + Lapack, S: Data<Elem = A>,