pub fn tridiagonal_sym_array<T>(
diag: &[T],
offdiag: &[T],
format: &str,
) -> SparseResult<Box<dyn SymSparseArray<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 diagonaloffdiag
- 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