Uploaded image for project: 'Commons Math'
  1. Commons Math
  2. MATH-612

Optimisation for QRDecomposition, BiDiagonalTransformer and TriDiagonalTransformer

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 3.0
    • Fix Version/s: 3.0
    • Labels:

      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.

        Attachments

        1. TriDiagonalTransformer.patch
          3 kB
          Christopher Nix
        2. QRDecompositionImpl.patch
          3 kB
          Christopher Nix
        3. BiDiagonalTransformer.patch
          5 kB
          Christopher Nix

          Activity

            People

            • Assignee:
              psteitz Phil Steitz
              Reporter:
              joubert Christopher Nix
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: