rust-ndarray / ndarray-linalg

Linear algebra package for rust-ndarray using LAPACK binding
Other
376 stars 77 forks source link

solve doesn't return the expected vector #356

Open adamcataldo opened 1 year ago

adamcataldo commented 1 year ago

The following test fails:

#[test]
pub fn test_solve() {
    let a = array![
        [0.2, 0.4, -0.2, -1.0],
        [0.4, 0.8, -0.4, -1.0],
        [0.2, 0.4, 0.0, 0.0],
        [1.0, 1.0, 0.0, 0.0]
    ];
    let b = array![0.0, 0.0, 0.2, 1.0];
    let x = a.solve(&b).unwrap();
    let y = array![1.0, 0.0, 1.0, 0.0];
    assert_eq!(y, x);
}

Instead of [1.0, 0.0, 1.0, 0.0], the solve returns the vector [-2.7333333333333325, 3.7333333333333334, 3.2666666666666657, -5.106666666666666].

This happens on:

os: macos 13.4 (22F66)
processor: 1.2 GHz Quad-Core Intel Core i7
rustc: 1.66.1 (90743e729 2023-01-10)
rust edition: 2021
ndarrary: v0.15.6
ndarray-linalg: v0.16.0
ndarray-linalg features: ["openblas-static"]