[SYSTEMML-380] Fix set-index-range CSR sparse block (index handling)

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

Branch: refs/heads/master
Commit: 39cf164748da11cc049a16a3a66e6b0e186d18e0
Parents: 78e161c
Author: Matthias Boehm <[email protected]>
Authored: Sat Jun 4 17:54:11 2016 -0700
Committer: Matthias Boehm <[email protected]>
Committed: Sat Jun 4 17:54:11 2016 -0700

----------------------------------------------------------------------
 .../apache/sysml/runtime/matrix/data/SparseBlockCSR.java    | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/39cf1647/src/main/java/org/apache/sysml/runtime/matrix/data/SparseBlockCSR.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/matrix/data/SparseBlockCSR.java 
b/src/main/java/org/apache/sysml/runtime/matrix/data/SparseBlockCSR.java
index 4bffc74..5108a2f 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/SparseBlockCSR.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/SparseBlockCSR.java
@@ -352,14 +352,15 @@ public class SparseBlockCSR extends SparseBlock
                if( _values.length < lsize )
                        resize(lsize);
                int index = posFIndexGT(r, cl);
-               shiftRightByN((index>0)?index:pos(r+1), lnnz);
+               int index2 = (index>0)?index:pos(r+1);
+               shiftRightByN(index2, lnnz);
                
                //insert values
                for( int i=vix; i<vix+vlen; i++ )
                        if( v[i] != 0 ) {
-                               _indexes[ index ] = cl+i-vix;
-                               _values[ index ] = v[i];
-                               index++;
+                               _indexes[ index2 ] = cl+i-vix;
+                               _values[ index2 ] = v[i];
+                               index2++;
                        }
                incrPtr(r+1, lnnz);
        }

Reply via email to