#![forbid(unsafe_code)]
use approx::assert_abs_diff_eq;
use la_stack::prelude::*;
fn main() -> Result<(), LaError> {
let a = Matrix::<5>::try_from_rows([
[0.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 0.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 0.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 0.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 0.0],
])?;
let lu = a.lu(DEFAULT_SINGULAR_TOL)?;
let det = lu.det()?;
assert_abs_diff_eq!(det, 4.0, epsilon = 1.0e-12);
println!("det = {det}");
Ok(())
}