lax

Trait Solve_

Source
pub trait Solve_: Scalar + Sized {
    // Required methods
    fn lu(l: MatrixLayout, a: &mut [Self]) -> Result<Pivot>;
    fn inv(l: MatrixLayout, a: &mut [Self], p: &Pivot) -> Result<()>;
    fn solve(
        l: MatrixLayout,
        t: Transpose,
        a: &[Self],
        p: &Pivot,
        b: &mut [Self],
    ) -> Result<()>;
}

Required Methods§

Source

fn lu(l: MatrixLayout, a: &mut [Self]) -> Result<Pivot>

Computes the LU factorization of a general m x n matrix a using partial pivoting with row interchanges.

$ PA = LU $

§Error
  • LapackComputationalFailure { return_code } when the matrix is singular
    • Division by zero will occur if it is used to solve a system of equations because U[(return_code-1, return_code-1)] is exactly zero.
Source

fn inv(l: MatrixLayout, a: &mut [Self], p: &Pivot) -> Result<()>

Source

fn solve( l: MatrixLayout, t: Transpose, a: &[Self], p: &Pivot, b: &mut [Self], ) -> 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.

Implementations on Foreign Types§

Source§

impl Solve_ for f32

Source§

fn lu(l: MatrixLayout, a: &mut [Self]) -> Result<Pivot>

Source§

fn inv(l: MatrixLayout, a: &mut [Self], ipiv: &Pivot) -> Result<()>

Source§

fn solve( l: MatrixLayout, t: Transpose, a: &[Self], ipiv: &Pivot, b: &mut [Self], ) -> Result<()>

Source§

impl Solve_ for f64

Source§

fn lu(l: MatrixLayout, a: &mut [Self]) -> Result<Pivot>

Source§

fn inv(l: MatrixLayout, a: &mut [Self], ipiv: &Pivot) -> Result<()>

Source§

fn solve( l: MatrixLayout, t: Transpose, a: &[Self], ipiv: &Pivot, b: &mut [Self], ) -> Result<()>

Source§

impl Solve_ for c32

Source§

fn lu(l: MatrixLayout, a: &mut [Self]) -> Result<Pivot>

Source§

fn inv(l: MatrixLayout, a: &mut [Self], ipiv: &Pivot) -> Result<()>

Source§

fn solve( l: MatrixLayout, t: Transpose, a: &[Self], ipiv: &Pivot, b: &mut [Self], ) -> Result<()>

Source§

impl Solve_ for c64

Source§

fn lu(l: MatrixLayout, a: &mut [Self]) -> Result<Pivot>

Source§

fn inv(l: MatrixLayout, a: &mut [Self], ipiv: &Pivot) -> Result<()>

Source§

fn solve( l: MatrixLayout, t: Transpose, a: &[Self], ipiv: &Pivot, b: &mut [Self], ) -> Result<()>

Implementors§