Mahout
  1. Mahout
  2. MAHOUT-1300

Support for easy functional matrix views and some of their derivatives

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.8
    • Fix Version/s: 0.9
    • Component/s: None
    • Labels:
      None

      Description

      Support for easy matrix views based on (Int,Int)=>Double function.

      Current derived views:
      (1) general functional view
      (2) transposed matrix view
      (3) uniform matrix view (based on function composition over symmetric uniform)
      (4) symmetric uniform matrix view (based on murmur64)
      (5) random gaussian matrix view.

      I know that there's a trinary random matrix as well which could be scripted out as a view as well (methinks), as well as Omega thing in distributed SSVD which also perhaps could be replaced by a symmetric uniform view.

      1. MAHOUT-1300.patch
        10 kB
        Dmitriy Lyubimov
      2. MAHOUT-1300.patch.1
        15 kB
        Dmitriy Lyubimov
      3. MAHOUT-1300.patch.2
        19 kB
        Dmitriy Lyubimov

        Issue Links

          Activity

          Hide
          Hudson added a comment -

          SUCCESS: Integrated in Mahout-Quality #2281 (See https://builds.apache.org/job/Mahout-Quality/2281/)
          MAHOUT-1300:Support for functional matrix views and some of their concrete implementations.

          Squashed commit of the following:

          commit 6328f2ef2a79a607c4acfb0ef3f6f2f14720610d
          Merge: 7504544 39b207b
          Author: Dmitriy Lyubimov <dlyubimov@apache.org>
          Date: Mon Oct 7 12:59:30 2013 -0700

          Merge branch 'trunk' into MAHOUT-1300

          commit 7504544f105217c92fe479fe6630e8133e9212dc
          Merge: 82b3412 70777c4
          Author: Dmitriy Lyubimov <dlyubimov@apache.org>
          Date: Wed Aug 7 23:06:28 2013 -0700

          Merge remote-tracking branch 'apache/trunk' into MAHOUT-1300

          commit 82b3412acda7300367261e8610dd49295336ddfd
          Author: Dmitriy Lyubimov <dlyubimov@apache.org>
          Date: Tue Jul 30 19:25:25 2013 -0700

          adding default implementation of viewPart to abstract Matrix (probably missing from there.).
          Fixing other things in FunctionalMatrixView.

          commit 284adde56d145f22e7e06fa0ed3d684c67dc2783
          Author: Dmitriy Lyubimov <dlyubimov@apache.org>
          Date: Tue Jul 30 13:33:58 2013 -0700

          Added Gaussian matrix gen test

          commit d0467b80c7cf2770b1ab96c9712cf2956e14cf5f
          Author: Dmitriy Lyubimov <dlyubimov@apache.org>
          Date: Tue Jul 30 13:30:15 2013 -0700

          Test and fixes

          commit 2a985437a3b02866bc7493b63aa352a872a2b0f2
          Author: Dmitriy Lyubimov <dlyubimov@apache.org>
          Date: Tue Jul 30 12:46:03 2013 -0700

          adding Apache 2 license

          commit 69c8a532912a411e8abf8af759e25fc3a533925c
          Author: Dmitriy Lyubimov <dlyubimov@apache.org>
          Date: Tue Jul 30 12:41:49 2013 -0700

          Initial write-up for MAHOUT-1300 (dlyubimov: rev 1530047)

          • /mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractMatrix.java
          • /mahout/trunk/math/src/main/java/org/apache/mahout/math/FunctionalMatrixView.java
          • /mahout/trunk/math/src/main/java/org/apache/mahout/math/Matrices.java
          • /mahout/trunk/math/src/main/java/org/apache/mahout/math/function/Functions.java
          • /mahout/trunk/math/src/main/java/org/apache/mahout/math/function/IntIntFunction.java
          • /mahout/trunk/math/src/test/java/org/apache/mahout/math/MatricesTest.java
          Show
          Hudson added a comment - SUCCESS: Integrated in Mahout-Quality #2281 (See https://builds.apache.org/job/Mahout-Quality/2281/ ) MAHOUT-1300 :Support for functional matrix views and some of their concrete implementations. Squashed commit of the following: commit 6328f2ef2a79a607c4acfb0ef3f6f2f14720610d Merge: 7504544 39b207b Author: Dmitriy Lyubimov <dlyubimov@apache.org> Date: Mon Oct 7 12:59:30 2013 -0700 Merge branch 'trunk' into MAHOUT-1300 commit 7504544f105217c92fe479fe6630e8133e9212dc Merge: 82b3412 70777c4 Author: Dmitriy Lyubimov <dlyubimov@apache.org> Date: Wed Aug 7 23:06:28 2013 -0700 Merge remote-tracking branch 'apache/trunk' into MAHOUT-1300 commit 82b3412acda7300367261e8610dd49295336ddfd Author: Dmitriy Lyubimov <dlyubimov@apache.org> Date: Tue Jul 30 19:25:25 2013 -0700 adding default implementation of viewPart to abstract Matrix (probably missing from there.). Fixing other things in FunctionalMatrixView. commit 284adde56d145f22e7e06fa0ed3d684c67dc2783 Author: Dmitriy Lyubimov <dlyubimov@apache.org> Date: Tue Jul 30 13:33:58 2013 -0700 Added Gaussian matrix gen test commit d0467b80c7cf2770b1ab96c9712cf2956e14cf5f Author: Dmitriy Lyubimov <dlyubimov@apache.org> Date: Tue Jul 30 13:30:15 2013 -0700 Test and fixes commit 2a985437a3b02866bc7493b63aa352a872a2b0f2 Author: Dmitriy Lyubimov <dlyubimov@apache.org> Date: Tue Jul 30 12:46:03 2013 -0700 adding Apache 2 license commit 69c8a532912a411e8abf8af759e25fc3a533925c Author: Dmitriy Lyubimov <dlyubimov@apache.org> Date: Tue Jul 30 12:41:49 2013 -0700 Initial write-up for MAHOUT-1300 (dlyubimov: rev 1530047) /mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractMatrix.java /mahout/trunk/math/src/main/java/org/apache/mahout/math/FunctionalMatrixView.java /mahout/trunk/math/src/main/java/org/apache/mahout/math/Matrices.java /mahout/trunk/math/src/main/java/org/apache/mahout/math/function/Functions.java /mahout/trunk/math/src/main/java/org/apache/mahout/math/function/IntIntFunction.java /mahout/trunk/math/src/test/java/org/apache/mahout/math/MatricesTest.java
          Hide
          Dmitriy Lyubimov added a comment -

          Ok i guess since i haven't heard from anyone, i will commit this this week then.

          -d

          Show
          Dmitriy Lyubimov added a comment - Ok i guess since i haven't heard from anyone, i will commit this this week then. -d
          Hide
          Dmitriy Lyubimov added a comment -

          I tried to create a review request for this, but it doesn't seem to work (breaks down) even for mahout-git with an error message i don't understand. I guess anyone interested, please review the patches.

          in particular, i am dubious about the names for random matrix views in the Matrices class. Not sure if they good enough, but something long like "uniformSymmetricRandomMatrixView()" is probably too long.

          transposedView is the main feature of this (per discussion with Ted). it eliminates overhead for thinggs like A.t %*% A (also changes to A would propagate to A.t)

          Show
          Dmitriy Lyubimov added a comment - I tried to create a review request for this, but it doesn't seem to work (breaks down) even for mahout-git with an error message i don't understand. I guess anyone interested, please review the patches. in particular, i am dubious about the names for random matrix views in the Matrices class. Not sure if they good enough, but something long like "uniformSymmetricRandomMatrixView()" is probably too long. transposedView is the main feature of this (per discussion with Ted). it eliminates overhead for thinggs like A.t %*% A (also changes to A would propagate to A.t)
          Hide
          Dmitriy Lyubimov added a comment -

          another iteration of fixes. IDEA format hit more than i wanted at times unfortunately.

          Show
          Dmitriy Lyubimov added a comment - another iteration of fixes. IDEA format hit more than i wanted at times unfortunately.
          Hide
          Dmitriy Lyubimov added a comment -

          some tests and fixes.

          Show
          Dmitriy Lyubimov added a comment - some tests and fixes.
          Hide
          Dmitriy Lyubimov added a comment -

          One thing i am not sure about is that we seem to have practice of using RandomGenerator from apache commons although this does not consistently apply to murmur utils. So fixing seed for tests does not seem to be consistent.

          Show
          Dmitriy Lyubimov added a comment - One thing i am not sure about is that we seem to have practice of using RandomGenerator from apache commons although this does not consistently apply to murmur utils. So fixing seed for tests does not seem to be consistent.
          Hide
          Dmitriy Lyubimov added a comment -

          Initial unscrutinized and test-less quick write-up (as a patch) to offer a glance at the proposal.

          Show
          Dmitriy Lyubimov added a comment - Initial unscrutinized and test-less quick write-up (as a patch) to offer a glance at the proposal.

            People

            • Assignee:
              Suneel Marthi
              Reporter:
              Dmitriy Lyubimov
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development