numrst 0.5.0

Fundamental package for scientific computing
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::{linalg::LinalgError, FloatDType, NdArray, Result};

/// Check a is square, and y has same len with a 
pub fn check_solve_arg<'a, T: FloatDType>(a: &'a NdArray<T>, y: &'a NdArray<T>) -> Result<()> {
    let a = a.matrix_view_unsafe()?;
    let y = y.vector_view_unsafe()?;
    // Check size
    let (m, n) = a.shape();
    if m != n {
        Err(LinalgError::NonSquareMatrix(a.shape()))?;
    }
    if m != y.len() {
        Err(LinalgError::SolveOutputLenMismatch(m, y.len()))?;
    }

    Ok(())
}