public FullPivLUResult FullPivLU() { double[] l = new double[Rows * Rows]; double[] u = new double[Rows * Cols]; double[] p = new double[Rows * Rows]; double[] q = new double[Cols * Cols]; EigenDenseUtilities.FullPivLU(GetValues(), Rows, Cols, l, u, p, q); var L = new MatrixXD(l, Rows, Rows); L.SetDiag(1.0); return(new FullPivLUResult(L, new MatrixXD(u, Rows, Cols), new MatrixXD(p, Rows, Rows), new MatrixXD(q, Cols, Cols))); }