/** * <p> * Performs a matrix inversion operation on the specified matrix and stores the results * in the same matrix.<br> * <br> * a = a<sup>-1<sup> * </p> * * <p> * If the algorithm could not invert the matrix then false is returned. If it returns true * that just means the algorithm finished. The results could still be bad * because the matrix is singular or nearly singular. * </p> * * @param A The matrix that is to be inverted. Results are stored here. Modified. * @return true if it could invert the matrix false if it could not. */ public static boolean invert( CDenseMatrix64F A ) { LinearSolver<CDenseMatrix64F> solver = CLinearSolverFactory.lu(A.numRows); if( solver.setA(A) ) { solver.invert(A); } else { return false; } return true; }
LinearSolver<CDenseMatrix64F> solver = CLinearSolverFactory.lu(input.numRows);