[ 
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

        

Reply via email to