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++ )