tridiagonal

Function tridiagonal 

Source
pub fn tridiagonal<T>(
    diag: ArrayView<'_, T, Ix1>,
    lower_diag: ArrayView<'_, T, Ix1>,
    upper_diag: ArrayView<'_, T, Ix1>,
) -> Result<Array<T, Ix2>, &'static str>
where T: Clone + Zero,
Expand description

Create a tri-diagonal matrix from the three diagonals

§Arguments

  • diag - Main diagonal
  • lower_diag - Lower diagonal
  • upper_diag - Upper diagonal

§Returns

A tri-diagonal matrix with the specified diagonals

§Examples

use ndarray::array;
use scirs2_core::ndarray_ext::matrix::tridiagonal;

let diag = array![1, 2, 3];
let lower = array![4, 5];
let upper = array![6, 7];

let result = tridiagonal(diag.view(), lower.view(), upper.view()).unwrap();
assert_eq!(result.shape(), &[3, 3]);
assert_eq!(result, array![
    [1, 6, 0],
    [4, 2, 7],
    [0, 5, 3]
]);