Mahout
  1. Mahout
  2. MAHOUT-182

New helper methods for Matrix: times(Vector), timesSquared(Vector), numRows() and numCols()

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 0.2
    • Fix Version/s: 0.3
    • Component/s: Math
    • Labels:
      None

      Description

      numRows()

      { return size()[ROW]; }

      and numCols()

      { return size()[COL]; }

      are pretty much no-brainer methods, right? Who wants to deal with a length-two array of ints all the time when getting the number of rows and columns of a matrix?

      Those are pretty trivial, but the key feature of a Matrix is to map Vector instances to Vector instances, and while you can do that currently by making a a row Matrix and doing Matrix.times(Matrix), it's silly to have to always do that. Matrix.times(Vector) is pretty needed.

      Even less trivial, for really big sparse Matrices, if you need to get (M'M)v for some matrix M, then this can be computed in one pass through M without ever computing the transpose of M by a simple reordering of the limits of summation.

      Attaching a patch with these implementations, including unit tests (as well as an improvement in the Matrix.times(Matrix) unit test to actually check the math).

      1. MAHOUT-182.patch
        8 kB
        Jake Mannix
      2. matrixTimes.patch
        8 kB
        Jake Mannix

        Activity

          People

          • Assignee:
            Grant Ingersoll
            Reporter:
            Jake Mannix
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development