You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by dl...@apache.org on 2013/07/31 07:55:10 UTC

svn commit: r1508733 - in /mahout/trunk/math/src/main/java/org/apache/mahout/math: SparseColumnMatrix.java SparseRowMatrix.java

Author: dlyubimov
Date: Wed Jul 31 05:55:10 2013
New Revision: 1508733

URL: http://svn.apache.org/r1508733
Log:
MAHOUT-1298: SparseRowMatrix,SparseColMatrix: optimize transpose()

Squashed commit of the following:

commit 809fa0105897113e44f7e55af611ed61d1746cb8
Merge: 9f963f8 21486b9
Author: Dmitriy Lyubimov <dl...@apache.org>
Date:   Tue Jul 30 22:51:53 2013 -0700

    Merge branch 'trunk' into MAHOUT-1298

commit 9f963f83b942c2bccade9dfd860ef2ff19687bbc
Author: Dmitriy Lyubimov <dl...@apache.org>
Date:   Mon Jul 29 16:53:12 2013 -0700

    Reverting whatever changes to SparseRowMatrixTest

commit 69e8c7655939ad3fe3072422b70e6fccfd6ce946
Author: Dmitriy Lyubimov <dl...@apache.org>
Date:   Mon Jul 29 16:47:13 2013 -0700

    implementation; specific tests are not required (already implemented in abstract matrix test)

Modified:
    mahout/trunk/math/src/main/java/org/apache/mahout/math/SparseColumnMatrix.java
    mahout/trunk/math/src/main/java/org/apache/mahout/math/SparseRowMatrix.java

Modified: mahout/trunk/math/src/main/java/org/apache/mahout/math/SparseColumnMatrix.java
URL: http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/SparseColumnMatrix.java?rev=1508733&r1=1508732&r2=1508733&view=diff
==============================================================================
--- mahout/trunk/math/src/main/java/org/apache/mahout/math/SparseColumnMatrix.java (original)
+++ mahout/trunk/math/src/main/java/org/apache/mahout/math/SparseColumnMatrix.java Wed Jul 31 05:55:10 2013
@@ -28,7 +28,7 @@ public class SparseColumnMatrix extends 
   /**
    * Construct a matrix of the given cardinality with the given data columns
    *
-   * @param columns     a RandomAccessSparseVector[] array of columns
+   * @param columns       a RandomAccessSparseVector[] array of columns
    * @param columnVectors
    */
   public SparseColumnMatrix(int rows, int columns, RandomAccessSparseVector[] columnVectors) {
@@ -65,7 +65,8 @@ public class SparseColumnMatrix extends 
 
   /**
    * Abstracted out for the iterator
-   * @return {@link #numCols()} 
+   *
+   * @return {@link #numCols()}
    */
   @Override
   public int numSlices() {
@@ -101,7 +102,7 @@ public class SparseColumnMatrix extends 
     result[COL] = columnVectors.length;
     for (int col = 0; col < columnSize(); col++) {
       result[ROW] = Math.max(result[ROW], columnVectors[col]
-          .getNumNondefaultElements());
+        .getNumNondefaultElements());
     }
     return result;
   }
@@ -156,4 +157,17 @@ public class SparseColumnMatrix extends 
     }
     return columnVectors[column];
   }
+
+  @Override
+  public Matrix transpose() {
+    SparseRowMatrix srm = new SparseRowMatrix(columns, rows);
+    for (int i = 0; i < columns; i++) {
+      Vector col = columnVectors[i];
+      if (col.getNumNonZeroElements() > 0)
+        // this should already be optimized
+        srm.assignRow(i, col);
+    }
+    return srm;
+  }
+
 }

Modified: mahout/trunk/math/src/main/java/org/apache/mahout/math/SparseRowMatrix.java
URL: http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/SparseRowMatrix.java?rev=1508733&r1=1508732&r2=1508733&view=diff
==============================================================================
--- mahout/trunk/math/src/main/java/org/apache/mahout/math/SparseRowMatrix.java (original)
+++ mahout/trunk/math/src/main/java/org/apache/mahout/math/SparseRowMatrix.java Wed Jul 31 05:55:10 2013
@@ -166,4 +166,15 @@ public class SparseRowMatrix extends Abs
     return rowVectors[row];
   }
 
+  @Override
+  public Matrix transpose() {
+    SparseColumnMatrix scm = new SparseColumnMatrix(columns, rows);
+    for (int i = 0; i < rows; i++) {
+      Vector row = rowVectors[i];
+      if ( row.getNumNonZeroElements() > 0)
+        scm.assignColumn(i, row);
+    }
+    return scm;
+  }
+
 }