linear solver which uses qr pivot decomposition . these solvers can handle singular systems and should never fail . for singular systems , the solution might not be as accurate as a pseudo inverse that uses svd . for singular systems there are multiple correct solutions . the optimal 2-norm solution is the solution vector with the minimal 2-norm and is unique . if the optimal solution is not computed then the basic solution is returned . see org.ejml.alg.dense.linsol.qr.baselinearsolverqrp for details . there is only a runtime difference for small matrices , 2-norm solution is slower . two different solvers are available . compute q will compute the q matrix once then use it multiple times . if the solution for a single vector is being found then this should be set to false . if the pseudo inverse is being found or the solution matrix has more than one columns and solve is being called numerous multiples times then this should be set to true . concode_field_sep PlaceHolder placeHolder concode_field_sep LinearSolver<DenseMatrix64F> leastSquares concode_elem_sep LinearSolver<DenseMatrix64F> general concode_elem_sep LinearSolver<DenseMatrix64F> pseudoInverse concode_elem_sep LinearSolver<DenseMatrix64F> linear concode_elem_sep LinearSolver<DenseMatrix64F> symmPosDef concode_elem_sep AdjustableLinearSolver adjustable