Hello, Someone complained recently to me about poor performances of RealMatrix.multiply(). A quick check showed me that changing the indices checks in RealMatrix.getEntry() tremendously improved the performances (about a 3 to 1 ratio in a simple case).
The current implementation explicitely calls the isValidCoordinate prior to getting the element from the underlying array. This method calls getRowDimension and getColumnDimension and do the intervals checks. I think this is unnecessary and duplicates the checks that are already done by the JVM. I would like to replace this by an a posteriori check when the JVM triggers an ArrayIndexOutOfBoundException. Basically, this means replacing: if (!isValidCoordinate(row,column)) { throw new MatrixIndexException(...); } return data[row][column]; by: try { return data[row][column]; } catch (ArrayIndexOutOfBoundsException e) { throw new MatrixIndexException(...); } I have read somewhere that array index checking is now highly optimized by JVM and can even be automatically removed in some cases. Do you think moving to such a way to handle index errors is sensible ? There are several other places where this could be done, so I would like to have your comments before doing the changes. Luc --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]