pub fn backward_tri_solve<const M: usize, const N: usize>( r: &[[f32; M]; N], b: &[f32; N], x: &mut [f32; N], n: usize, )
Back-substitute Rx = b where R is upper-triangular (first n rows/cols).
Rx = b
n