Tests with various larger models in mps format from netlib.org have shown that there is a lot of room for improvements for the SimplexSolver.
Currently, the tableau is stored in a RealMatrix, and each access to an entry uses the getEntry / setEntry methods which always does bounds checking. This is inefficient and unnecessary as we know that we access the matrix within bounds.
Suggest to access the internal array directly for various operations. The walkInXXX method of RealMatrix can not always be used for this purpose.
Also the getBasicRow() method can be a bottle-neck as it always needs to analyze the whole tableau to determine the row in which a variable is basic. It would be better to keep track of which variables are basic in which row.