Description
QRDecomposition, BiDiagonalTransformer and TriDiagonalTransformer all contain methods that create an empty matrix for population in calculations employing getEntry and setEntry on the matrix. Methods getEntry and setEntry perform a check to ensure the matrix indices are in bounds. This overhead of method calls is detrimental within loops that iterate many times.
Methods within QRDecomposition, BiDiagonalTransformer and TriDiagonalTransformer have significantly improved performance over large matrices if, instead of creating an empty RealMatrix and then using getEntry and setEntry, we create a double array for direct access and create a RealMatrix from it at the end.