lu_decomposition_with_options

Function lu_decomposition_with_options 

Source
pub fn lu_decomposition_with_options<T, S>(
    matrix: &S,
    options: Option<LUOptions>,
) -> SparseResult<LUResult<T>>
where T: Float + Debug + Copy + Add<Output = T> + Sub<Output = T> + Mul<Output = T> + Div<Output = T>, S: SparseArray<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 decompose
  • options - 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();