Function tridiagonal_sym_array

Source
pub fn tridiagonal_sym_array<T>(
    diag: &[T],
    offdiag: &[T],
    format: &str,
) -> SparseResult<Box<dyn SymSparseArray<T>>>
where T: Float + Debug + Copy + 'static + Add<Output = T> + Sub<Output = T> + Mul<Output = T> + Div<Output = T>,
Expand description

Create a symmetric tridiagonal matrix

Creates a symmetric tridiagonal matrix with specified main diagonal and off-diagonal values.

§Arguments

  • diag - Values for the main diagonal
  • offdiag - Values for the first off-diagonal (both above and below main diagonal)
  • format - Format of the output matrix (“csr” or “coo”)

§Returns

A symmetric tridiagonal matrix

§Examples

use scirs2_sparse::construct_sym::tridiagonal_sym_array;

// Create a 3x3 tridiagonal matrix with main diagonal [2, 2, 2]
// and off-diagonal [1, 1]
let tri = tridiagonal_sym_array(&[2.0, 2.0, 2.0], &[1.0, 1.0], "csr").unwrap();

assert_eq!(tri.shape(), (3, 3));
assert_eq!(tri.get(0, 0), 2.0); // Main diagonal
assert_eq!(tri.get(1, 1), 2.0);
assert_eq!(tri.get(2, 2), 2.0);
assert_eq!(tri.get(0, 1), 1.0); // Off-diagonal
assert_eq!(tri.get(1, 0), 1.0); // Symmetric element
assert_eq!(tri.get(1, 2), 1.0);
assert_eq!(tri.get(0, 2), 0.0); // Zero element