pub fn lu_decomposition_with_options<T, S>(
matrix: &S,
options: Option<LUOptions>,
) -> SparseResult<LUResult<T>>
Expand description
Compute sparse LU decomposition with enhanced pivoting strategies
Computes the LU decomposition of a sparse matrix A such that PA = LU, where P is a permutation matrix, L is lower triangular, and U is upper triangular. This version supports multiple pivoting strategies for enhanced numerical stability.
§Arguments
matrix
- The sparse matrix to decomposeoptions
- LU decomposition options (pivoting strategy, thresholds, etc.)
§Returns
LU decomposition result
§Examples
use scirs2_sparse::linalg::{lu_decomposition_with_options, LUOptions, PivotingStrategy};
use scirs2_sparse::csr_array::CsrArray;
// Create a sparse matrix
let rows = vec![0, 0, 1, 2];
let cols = vec![0, 1, 1, 2];
let data = vec![2.0, 1.0, 3.0, 4.0];
let matrix = CsrArray::from_triplets(&rows, &cols, &data, (3, 3), false).unwrap();
let options = LUOptions {
pivoting: PivotingStrategy::ScaledPartial,
zero_threshold: 1e-12,
check_singular: true,
};
let lu_result = lu_decomposition_with_options(&matrix, Some(options)).unwrap();