You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by mb...@apache.org on 2017/04/14 19:45:04 UTC

[3/3] incubator-systemml git commit: [SYSTEMML-1520] Fix sparse output corruption of row-wise rexpand

[SYSTEMML-1520] Fix sparse output corruption of row-wise rexpand

Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/149562ec
Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/149562ec
Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/149562ec

Branch: refs/heads/master
Commit: 149562eca0bb1a438e34dc6e2d7993b44e2e612e
Parents: 55e46e7
Author: Matthias Boehm <mb...@gmail.com>
Authored: Fri Apr 14 02:24:13 2017 -0700
Committer: Matthias Boehm <mb...@gmail.com>
Committed: Fri Apr 14 12:46:42 2017 -0700

----------------------------------------------------------------------
 .../org/apache/sysml/runtime/matrix/data/LibMatrixReorg.java | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/149562ec/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixReorg.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixReorg.java b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixReorg.java
index 9c6af97..dfd19aa 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixReorg.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixReorg.java
@@ -1899,9 +1899,13 @@ public class LibMatrixReorg
 				if( val == Math.floor(val) && val >= 1 && val <= max )
 					ret.appendValue((int)(val-1), i+tmpi[j], 1);
 			}
-			
 		}
 		
+		//ensure valid output sparse representation 
+		//(necessary due to cache-conscious processing w/ unstable sort)
+		if( ret.isInSparseFormat() )
+			ret.sortSparseRows();
+		
 		return ret;
 	}
 
@@ -1940,7 +1944,7 @@ public class LibMatrixReorg
 	{
 		//copy value array from input matrix
 		if( in.isEmptyBlock(false) ) {
-			Arrays.fill(tmp, 0, 0, len);
+			Arrays.fill(tmp, 0, len, 0);
 		}
 		else if( in.sparse ){ //SPARSE
 			for( int i=0; i<len; i++ )