You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Christopher Nix (JIRA)" <ji...@apache.org> on 2011/07/06 14:31:16 UTC

[jira] [Created] (MATH-612) Optimisation for QRDecomposition, BiDiagonalTransformer and TriDiagonalTransformer

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
             Fix For: 3.0, Nightly Builds


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.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (MATH-612) Optimisation for QRDecomposition, BiDiagonalTransformer and TriDiagonalTransformer

Posted by "Christopher Nix (JIRA)" <ji...@apache.org>.
     [ 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

        

[jira] [Updated] (MATH-612) Optimisation for QRDecomposition, BiDiagonalTransformer and TriDiagonalTransformer

Posted by "Christopher Nix (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MATH-612?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christopher Nix updated MATH-612:
---------------------------------

    Attachment: TriDiagonalTransformer.patch
                BiDiagonalTransformer.patch
                QRDecompositionImpl.patch

> 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 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.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (MATH-612) Optimisation for QRDecomposition, BiDiagonalTransformer and TriDiagonalTransformer

Posted by "Phil Steitz (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MATH-612?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Phil Steitz resolved MATH-612.
------------------------------

    Resolution: Fixed

Patches applied in r1183504,1183505,1183507

Thanks for the patches!
                
> 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
>            Assignee: Phil Steitz
>            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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira