public Matrix Invert()                                           // Function returns the inverted matrix
        {
            if (L == null)
            {
                MakeLU();
            }

            Matrix inv = new Matrix(rows, cols);

            for (int i = 0; i < rows; i++)
            {
                Matrix Ei = Matrix.ZeroMatrix(rows, 1);
                Ei[i, 0] = 1;
                Matrix col = SolveWith(Ei);
                inv.SetCol(col, i);
            }
            return(inv);
        }