linear.qr now returns nil if decomposition is impossible