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

Optimisation for QRDecomposition, BiDiagonalTransformer and TriDiagonalTransformer

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 3.0
    • 3.0
    • None

    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. BiDiagonalTransformer.patch
          5 kB
          Christopher Nix
        2. QRDecompositionImpl.patch
          3 kB
          Christopher Nix
        3. TriDiagonalTransformer.patch
          3 kB
          Christopher Nix

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: