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 <[email protected]> Date: Tue Jul 30 22:51:53 2013 -0700 Merge branch 'trunk' into MAHOUT-1298 commit 9f963f83b942c2bccade9dfd860ef2ff19687bbc Author: Dmitriy Lyubimov <[email protected]> Date: Mon Jul 29 16:53:12 2013 -0700 Reverting whatever changes to SparseRowMatrixTest commit 69e8c7655939ad3fe3072422b70e6fccfd6ce946 Author: Dmitriy Lyubimov <[email protected]> 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; + } + }
