pub trait QRSquare: Sized { type Q; type R; fn qr_square(&self) -> Result<(Self::Q, Self::R)>; }
QR decomposition for square matrix reference