pub trait FullPivLuScalar: BackendLinalgScalar {
// Required method
fn solve_right_full_piv_lu(
lhs_values: &[Self],
lhs_rows: usize,
lhs_cols: usize,
pivot_values: &[Self],
pivot_rows: usize,
pivot_cols: usize,
) -> Result<Vec<Self>, BackendLinalgError>;
}Expand description
Scalar types that can solve T * P = Pi1 via a right full-pivoting LU
solve on the tenferro backend.
This is the foundational seam for matrix cross-interpolation (CI)
materialization: it lets an algorithm layer ask for the backend’s
full-pivot LU solve without depending on any higher crate. The four
supported scalar types (f32, f64, Complex32, Complex64) are implemented
here; f32/Complex32 inputs are solved in double precision by the
backend and converted back.
§Errors
Returns an error when the pivot matrix is not square, the shapes are incompatible, or the backend solve fails.
Required Methods§
Sourcefn solve_right_full_piv_lu(
lhs_values: &[Self],
lhs_rows: usize,
lhs_cols: usize,
pivot_values: &[Self],
pivot_rows: usize,
pivot_cols: usize,
) -> Result<Vec<Self>, BackendLinalgError>
fn solve_right_full_piv_lu( lhs_values: &[Self], lhs_rows: usize, lhs_cols: usize, pivot_values: &[Self], pivot_rows: usize, pivot_cols: usize, ) -> Result<Vec<Self>, BackendLinalgError>
Solve T * P = Pi1 for T, where P is the pivot matrix (column-major).
§Errors
Returns a BackendLinalgError when the pivot matrix is not square
(a shape mismatch), when the shapes are incompatible (lhs_cols != pivot_rows, a shape mismatch), or when the backend full-pivot LU solve
fails (a backend failure).
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".