pub fn eye_array_k<T>(
m: usize,
n: usize,
k: isize,
format: &str,
) -> SparseResult<Box<dyn SparseArray<T>>>
Expand description
Creates a sparse identity array of size m x n with k-th diagonal filled with ones
§Arguments
m
- Number of rowsn
- Number of columnsk
- Diagonal index (0 = main diagonal, >0 = above main, <0 = below main)format
- Format of the output array (“csr” or “coo”)
§Returns
A sparse array with ones on the specified diagonal
§Examples
use scirs2_sparse::construct::eye_array_k;
// Identity with main diagonal (k=0)
let eye: Box<dyn scirs2_sparse::SparseArray<f64>> = eye_array_k(3, 3, 0, "csr").unwrap();
assert_eq!(eye.get(0, 0), 1.0);
assert_eq!(eye.get(1, 1), 1.0);
assert_eq!(eye.get(2, 2), 1.0);
// Superdiagonal (k=1)
let superdiag: Box<dyn scirs2_sparse::SparseArray<f64>> = eye_array_k(3, 4, 1, "csr").unwrap();
assert_eq!(superdiag.get(0, 1), 1.0);
assert_eq!(superdiag.get(1, 2), 1.0);
assert_eq!(superdiag.get(2, 3), 1.0);
// Subdiagonal (k=-1)
let subdiag: Box<dyn scirs2_sparse::SparseArray<f64>> = eye_array_k(4, 3, -1, "csr").unwrap();
assert_eq!(subdiag.get(1, 0), 1.0);
assert_eq!(subdiag.get(2, 1), 1.0);
assert_eq!(subdiag.get(3, 2), 1.0);