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§
Sourcefn lu(l: MatrixLayout, a: &mut [Self]) -> Result<Pivot>
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.
- Division by zero will occur if it is used to solve a system of equations
because
fn inv(l: MatrixLayout, a: &mut [Self], p: &Pivot) -> Result<()>
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.