[
https://issues.apache.org/jira/browse/MATH-612?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christopher Nix updated MATH-612:
---------------------------------
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.
was:
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 check is not necessary
if the calling method has already ensured them to be in bounds, for example by
checking the max and min index as a looping parameter.
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.
> Optimisation for QRDecomposition, BiDiagonalTransformer and
> TriDiagonalTransformer
> ----------------------------------------------------------------------------------
>
> Key: MATH-612
> URL: https://issues.apache.org/jira/browse/MATH-612
> Project: Commons Math
> Issue Type: Improvement
> Affects Versions: 3.0, Nightly Builds
> Reporter: Christopher Nix
> Priority: Minor
> Labels: patch
> Fix For: 3.0, Nightly Builds
>
> Attachments: BiDiagonalTransformer.patch, QRDecompositionImpl.patch,
> TriDiagonalTransformer.patch
>
>
> 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.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira