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.

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.

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