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/10/15 09:52:54 UTC
[3/3] systemml git commit: [HOTFIX][SYSTEMML-1959] Fix sparse-sparse
transpose w/ CSR input
[HOTFIX][SYSTEMML-1959] Fix sparse-sparse transpose w/ CSR input
This patch fixes a remaining issue of sparse-sparse transpose related to
the correct handling of sparse blocks in CSR or COO format.
Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/33559144
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/33559144
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/33559144
Branch: refs/heads/master
Commit: 33559144cd707e324b59ed5ca417e3d5461c2f0a
Parents: a347af3
Author: Matthias Boehm <mb...@gmail.com>
Authored: Sun Oct 15 02:42:20 2017 -0700
Committer: Matthias Boehm <mb...@gmail.com>
Committed: Sun Oct 15 02:42:20 2017 -0700
----------------------------------------------------------------------
.../sysml/runtime/matrix/data/LibMatrixReorg.java | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/systemml/blob/33559144/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 3ae07c5..dd86c27 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
@@ -859,8 +859,8 @@ public class LibMatrixReorg
if( cl > 0 ) {
for( int i=bi; i<bimin; i++ )
if( !a.isEmpty(i) ) {
- int pos = a.posFIndexGTE(i, cl);
- ix[i-bi] = (pos>=0) ? pos : a.size(i);
+ int j = a.posFIndexGTE(i, cl);
+ ix[i-bi] = (j>=0) ? j : a.size(i);
}
}
@@ -868,19 +868,19 @@ public class LibMatrixReorg
int bjmin = Math.min(bj+blocksizeJ, cu);
//core block transpose operation
- for( int i=bi, iix=0; i<bimin; i++, iix++ ) {
+ for( int i=bi; i<bimin; i++ ) {
if( a.isEmpty(i) ) continue;
int apos = a.pos(i);
int alen = a.size(i);
int[] aix = a.indexes(i);
double[] avals = a.values(i);
- int j = ix[iix]; //last block boundary
- for( ; j<alen && aix[j]<bjmin; j++ ) {
- c.allocate(aix[apos+j], ennz2,n2);
- c.append(aix[apos+j], i, avals[apos+j]);
+ int j = ix[i-bi] + apos; //last block boundary
+ for( ; j<apos+alen && aix[j]<bjmin; j++ ) {
+ c.allocate(aix[j], ennz2,n2);
+ c.append(aix[j], i, avals[j]);
}
- ix[iix] = j; //keep block boundary
+ ix[i-bi] = j - apos; //keep block boundary
}
}
}