pub trait Solve<A: Scalar> {
    fn solve_inplace<'a, S: DataMut<Elem = A>>(
        &self,
        b: &'a mut ArrayBase<S, Ix1>
    ) -> Result<&'a mut ArrayBase<S, Ix1>>; fn solve_t_inplace<'a, S: DataMut<Elem = A>>(
        &self,
        b: &'a mut ArrayBase<S, Ix1>
    ) -> Result<&'a mut ArrayBase<S, Ix1>>; fn solve_h_inplace<'a, S: DataMut<Elem = A>>(
        &self,
        b: &'a mut ArrayBase<S, Ix1>
    ) -> Result<&'a mut ArrayBase<S, Ix1>>; fn solve<S: Data<Elem = A>>(
        &self,
        b: &ArrayBase<S, Ix1>
    ) -> Result<Array1<A>> { ... } fn solve_into<S: DataMut<Elem = A>>(
        &self,
        b: ArrayBase<S, Ix1>
    ) -> Result<ArrayBase<S, Ix1>> { ... } fn solve_t<S: Data<Elem = A>>(
        &self,
        b: &ArrayBase<S, Ix1>
    ) -> Result<Array1<A>> { ... } fn solve_t_into<S: DataMut<Elem = A>>(
        &self,
        b: ArrayBase<S, Ix1>
    ) -> Result<ArrayBase<S, Ix1>> { ... } fn solve_h<S: Data<Elem = A>>(
        &self,
        b: &ArrayBase<S, Ix1>
    ) -> Result<Array1<A>> { ... } fn solve_h_into<S: DataMut<Elem = A>>(
        &self,
        b: ArrayBase<S, Ix1>
    ) -> Result<ArrayBase<S, Ix1>> { ... } }
Expand description

An interface for solving systems of linear equations.

There are three groups of methods:

  • solve* (normal) methods solve A * x = b for x.
  • solve_t* (transpose) methods solve A^T * x = b for x.
  • solve_h* (Hermitian conjugate) methods solve A^H * x = b for x.

Within each group, there are three methods that handle ownership differently:

  • * methods take a reference to b and return x as a new array.
  • *_into methods take ownership of b, store the result in it, and return it.
  • *_inplace methods take a mutable reference to b and store the result in that array.

If you plan to solve many equations with the same A matrix but different b vectors, it’s faster to factor the A matrix once using the Factorize trait, and then solve using the LUFactorized struct.

Required Methods

Solves a system of linear equations A * x = b 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.

Solves a system of linear equations A^T * x = b 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 rows of A.

Solves a system of linear equations A^H * x = b 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 rows of A.

Provided Methods

Solves a system of linear equations A * x = b 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.

Solves a system of linear equations A * x = b 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.

Solves a system of linear equations A^T * x = b 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 rows of A.

Solves a system of linear equations A^T * x = b 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 rows of A.

Solves a system of linear equations A^H * x = b 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 rows of A.

Solves a system of linear equations A^H * x = b 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 rows of A.

Implementations on Foreign Types

Implementors