This is an automated email from the ASF dual-hosted git repository.

mboehm7 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/systemds.git


The following commit(s) were added to refs/heads/main by this push:
     new 8d36f955b4 [MINOR] Cleanup core matrix block (remove unused/untested 
code)
8d36f955b4 is described below

commit 8d36f955b4f9f771581a08ff3fe395ced63f7907
Author: Matthias Boehm <mboe...@gmail.com>
AuthorDate: Sat Jul 27 19:19:41 2024 +0200

    [MINOR] Cleanup core matrix block (remove unused/untested code)
---
 .../runtime/compress/CompressedMatrixBlock.java    |   9 +-
 .../spark/MatrixIndexingSPInstruction.java         |   8 +-
 .../sysds/runtime/matrix/data/CM_N_COVCell.java    |   2 +-
 .../sysds/runtime/matrix/data/LibMatrixReorg.java  |   3 +-
 .../sysds/runtime/matrix/data/MatrixBlock.java     | 282 ++++-----------------
 .../sysds/runtime/matrix/data/MatrixCell.java      |   2 +-
 .../sysds/runtime/matrix/data/MatrixValue.java     |   2 +-
 .../builtin/part2/BuiltinRaGroupbyTest.java        |   1 -
 8 files changed, 61 insertions(+), 248 deletions(-)

diff --git 
a/src/main/java/org/apache/sysds/runtime/compress/CompressedMatrixBlock.java 
b/src/main/java/org/apache/sysds/runtime/compress/CompressedMatrixBlock.java
index 79951b4b4b..c00f52171c 100644
--- a/src/main/java/org/apache/sysds/runtime/compress/CompressedMatrixBlock.java
+++ b/src/main/java/org/apache/sysds/runtime/compress/CompressedMatrixBlock.java
@@ -764,10 +764,10 @@ public class CompressedMatrixBlock extends MatrixBlock {
        }
 
        @Override
-       public MatrixBlock zeroOutOperations(MatrixValue result, IndexRange 
range, boolean complementary) {
+       public MatrixBlock zeroOutOperations(MatrixValue result, IndexRange 
range) {
                printDecompressWarning("zeroOutOperations");
                MatrixBlock tmp = getUncompressed();
-               return tmp.zeroOutOperations(result, range, complementary);
+               return tmp.zeroOutOperations(result, range);
        }
 
        @Override
@@ -1212,11 +1212,6 @@ public class CompressedMatrixBlock extends MatrixBlock {
                return false;
        }
 
-       @Override
-       public void checkNaN() {
-               throw new NotImplementedException();
-       }
-
        @Override
        public void init(double[][] arr, int r, int c) {
                throw new DMLCompressionException("Invalid to init on a 
compressed MatrixBlock");
diff --git 
a/src/main/java/org/apache/sysds/runtime/instructions/spark/MatrixIndexingSPInstruction.java
 
b/src/main/java/org/apache/sysds/runtime/instructions/spark/MatrixIndexingSPInstruction.java
index e97336a8a6..e3201051ca 100644
--- 
a/src/main/java/org/apache/sysds/runtime/instructions/spark/MatrixIndexingSPInstruction.java
+++ 
b/src/main/java/org/apache/sysds/runtime/instructions/spark/MatrixIndexingSPInstruction.java
@@ -158,7 +158,7 @@ public class MatrixIndexingSPInstruction extends 
IndexingSPInstruction {
                        }
                        else { //general case
                                // zero-out lhs
-                               in1 = in1.mapToPair(new ZeroOutLHS(false, 
ixrange, mcLeft));
+                               in1 = in1.mapToPair(new ZeroOutLHS(ixrange, 
mcLeft));
                                
                                // slice rhs, shift and merge with lhs
                                in2 = 
sec.getBinaryMatrixBlockRDDHandleForVariable( input2.getName() )
@@ -341,12 +341,10 @@ public class MatrixIndexingSPInstruction extends 
IndexingSPInstruction {
        {
                private static final long serialVersionUID = 
-3581795160948484261L;
                
-               private boolean _complement = false;
                private IndexRange _ixrange = null;
                private int _blen = -1;
                
-               public ZeroOutLHS(boolean complement, IndexRange range, 
DataCharacteristics mcLeft) {
-                       _complement = complement;
+               public ZeroOutLHS(IndexRange range, DataCharacteristics mcLeft) 
{
                        _ixrange = range;
                        _blen = mcLeft.getBlocksize();
                        _blen = mcLeft.getBlocksize();
@@ -365,7 +363,7 @@ public class MatrixIndexingSPInstruction extends 
IndexingSPInstruction {
                                throw new Exception("Error while getting range 
for zero-out");
                        }
                        
-                       MatrixBlock zeroBlk = kv._2.zeroOutOperations(new 
MatrixBlock(), range, _complement);
+                       MatrixBlock zeroBlk = kv._2.zeroOutOperations(new 
MatrixBlock(), range);
                        return new Tuple2<>(kv._1, zeroBlk);
                }
        }
diff --git 
a/src/main/java/org/apache/sysds/runtime/matrix/data/CM_N_COVCell.java 
b/src/main/java/org/apache/sysds/runtime/matrix/data/CM_N_COVCell.java
index aef6e78260..a77ca3349d 100644
--- a/src/main/java/org/apache/sysds/runtime/matrix/data/CM_N_COVCell.java
+++ b/src/main/java/org/apache/sysds/runtime/matrix/data/CM_N_COVCell.java
@@ -213,7 +213,7 @@ public class CM_N_COVCell extends MatrixValue
        }
 
        @Override
-       public MatrixValue zeroOutOperations(MatrixValue result, IndexRange 
range, boolean complementary) {
+       public MatrixValue zeroOutOperations(MatrixValue result, IndexRange 
range) {
                throw new DMLRuntimeException("operation not supported for 
CM_N_COVCell");
        }
 
diff --git 
a/src/main/java/org/apache/sysds/runtime/matrix/data/LibMatrixReorg.java 
b/src/main/java/org/apache/sysds/runtime/matrix/data/LibMatrixReorg.java
index fba185a5c4..1ebd73da4d 100644
--- a/src/main/java/org/apache/sysds/runtime/matrix/data/LibMatrixReorg.java
+++ b/src/main/java/org/apache/sysds/runtime/matrix/data/LibMatrixReorg.java
@@ -107,8 +107,7 @@ public class LibMatrixReorg {
        // public interface    //
        /////////////////////////
 
-       public static boolean isSupportedReorgOperator( ReorgOperator op )
-       {
+       public static boolean isSupportedReorgOperator( ReorgOperator op ) {
                return (getReorgType(op) != ReorgType.INVALID);
        }
 
diff --git 
a/src/main/java/org/apache/sysds/runtime/matrix/data/MatrixBlock.java 
b/src/main/java/org/apache/sysds/runtime/matrix/data/MatrixBlock.java
index 054edf06a2..7c8efec94e 100644
--- a/src/main/java/org/apache/sysds/runtime/matrix/data/MatrixBlock.java
+++ b/src/main/java/org/apache/sysds/runtime/matrix/data/MatrixBlock.java
@@ -3280,53 +3280,10 @@ public class MatrixBlock extends MatrixValue implements 
CacheBlock<MatrixBlock>,
                }
                else if(aggOp.correction==CorrectionLocationType.NONE) {
                        //e.g., ak+ kahan plus as used in sum, mapmult, mmcj 
and tsmm
-                       if(aggOp.increOp.fn instanceof KahanPlus) {
-                               LibMatrixAgg.aggregateBinaryMatrix(newWithCor, 
this, cor, deep);
-                       }
-                       else
-                       {
-                               if( newWithCor.isInSparseFormat() && 
aggOp.sparseSafe ) //SPARSE
-                               {
-                                       SparseBlock b = 
newWithCor.getSparseBlock();
-                                       if( b==null ) //early abort on empty 
block
-                                               return;
-                                       for( int r=0; r<Math.min(rlen, 
b.numRows()); r++ )
-                                       {
-                                               if( !b.isEmpty(r) ) 
-                                               {
-                                                       int bpos = b.pos(r);
-                                                       int blen = b.size(r);
-                                                       int[] bix = 
b.indexes(r);
-                                                       double[] bvals = 
b.values(r);
-                                                       for( int j=bpos; 
j<bpos+blen; j++)
-                                                       {
-                                                               int c = bix[j];
-                                                               buffer._sum = 
this.get(r, c);
-                                                               
buffer._correction = cor.get(r, c);
-                                                               buffer = 
(KahanObject) aggOp.increOp.fn.execute(buffer, bvals[j]);
-                                                               set(r, c, 
buffer._sum);
-                                                               cor.set(r, c, 
buffer._correction);
-                                                       }
-                                               }
-                                       }
-                                       
-                               }
-                               else //DENSE or SPARSE (!sparsesafe)
-                               {
-                                       for(int r=0; r<rlen; r++)
-                                               for(int c=0; c<clen; c++) {
-                                                       buffer._sum=this.get(r, 
c);
-                                                       
buffer._correction=cor.get(r, c);
-                                                       buffer=(KahanObject) 
aggOp.increOp.fn.execute(buffer, newWithCor.get(r, c));
-                                                       set(r, c, buffer._sum);
-                                                       cor.set(r, c, 
buffer._correction);
-                                               }
-                               }
+                       if(!(aggOp.increOp.fn instanceof KahanPlus))
+                               throw new DMLRuntimeException("Unsupported 
incremental aggregation: "+aggOp.increOp.fn);
                        
-                               //change representation if required
-                               //(note since ak+ on blocks is currently only 
applied in MR, hence no need to account for this in mem estimates)
-                               examSparsity(); 
-                       }
+                       LibMatrixAgg.aggregateBinaryMatrix(newWithCor, this, 
cor, deep);
                }
                else if(aggOp.correction==CorrectionLocationType.LASTTWOROWS) {
                        double n, n2, mu2;
@@ -3452,23 +3409,10 @@ public class MatrixBlock extends MatrixValue implements 
CacheBlock<MatrixBlock>,
                
                if(aggOp.correction==CorrectionLocationType.LASTROW)
                {
-                       if( aggOp.increOp.fn instanceof KahanPlus )
-                       {
-                               LibMatrixAgg.aggregateBinaryMatrix(newWithCor, 
this, aggOp);
-                       }
-                       else
-                       {
-                               for(int r=0; r<rlen-1; r++)
-                                       for(int c=0; c<clen; c++)
-                                       {
-                                               buffer._sum=this.get(r, c);
-                                               
buffer._correction=this.get(r+1, c);
-                                               buffer=(KahanObject) 
aggOp.increOp.fn.execute(buffer, newWithCor.get(r, c), 
-                                                               
newWithCor.get(r+1, c));
-                                               set(r, c, buffer._sum);
-                                               set(r+1, c, buffer._correction);
-                                       }
-                       }       
+                       if( !(aggOp.increOp.fn instanceof KahanPlus) )
+                               throw new DMLRuntimeException("Unsupported 
incremental aggregation: "+aggOp.increOp.fn);
+                       
+                       LibMatrixAgg.aggregateBinaryMatrix(newWithCor, this, 
aggOp);
                }
                else if(aggOp.correction==CorrectionLocationType.LASTCOLUMN)
                {
@@ -3511,20 +3455,10 @@ public class MatrixBlock extends MatrixValue implements 
CacheBlock<MatrixBlock>,
                        }
                        else
                        {
-                               if(aggOp.increOp.fn instanceof KahanPlus) {
-                                       
LibMatrixAgg.aggregateBinaryMatrix(newWithCor, this, aggOp);
-                               }
-                               else {
-                                       for(int r=0; r<rlen; r++)
-                                               for(int c=0; c<clen-1; c++)
-                                               {
-                                                       buffer._sum=this.get(r, 
c);
-                                                       
buffer._correction=this.get(r, c+1);
-                                                       buffer=(KahanObject) 
aggOp.increOp.fn.execute(buffer, newWithCor.get(r, c), newWithCor.get(r, c+1));
-                                                       set(r, c, buffer._sum);
-                                                       set(r, c+1, 
buffer._correction);
-                                               }
-                               }
+                               if(!(aggOp.increOp.fn instanceof KahanPlus)) 
+                                       throw new 
DMLRuntimeException("Unsupported incremental aggregation: "+aggOp.increOp.fn);
+                               
+                               LibMatrixAgg.aggregateBinaryMatrix(newWithCor, 
this, aggOp);
                        }
                }
                else if(aggOp.correction==CorrectionLocationType.LASTTWOROWS)
@@ -3667,62 +3601,12 @@ public class MatrixBlock extends MatrixValue implements 
CacheBlock<MatrixBlock>,
                else
                        result.reset(tempCellIndex.row, tempCellIndex.column, 
sps, nonZeros);
                
-               if( LibMatrixReorg.isSupportedReorgOperator(op) )
-               {
-                       //SPECIAL case (operators with special performance 
requirements, 
-                       //or size-dependent special behavior)
-                       //currently supported opcodes: r', rdiag, rsort, rev
-                       LibMatrixReorg.reorg(this, result, op);
-               }
-               else 
-               {
-                       //GENERIC case (any reorg operator)
-                       CellIndex temp = new CellIndex(0, 0);
-                       if(sparse && sparseBlock != null) {
-                               for(int r=0; r<Math.min(rlen, 
sparseBlock.numRows()); r++) {
-                                       if(sparseBlock.isEmpty(r)) continue;
-                                       int apos = sparseBlock.pos(r);
-                                       int alen = sparseBlock.size(r);
-                                       int[] aix = sparseBlock.indexes(r);
-                                       double[] avals = sparseBlock.values(r);
-                                       for(int i=apos; i<apos+alen; i++) {
-                                               tempCellIndex.set(r, aix[i]);
-                                               op.fn.execute(tempCellIndex, 
temp);
-                                               result.appendValue(temp.row, 
temp.column, avals[i]);
-                                       }
-                               }
-                       }
-                       else if( !sparse && denseBlock != null ) {
-                               if( result.isInSparseFormat() ) { 
//SPARSE<-DENSE
-                                       DenseBlock a = getDenseBlock();
-                                       for( int i=0; i<rlen; i++ ) {
-                                               double[] avals = a.values(i);
-                                               int aix = a.pos(i);
-                                               for( int j=0; j<clen; j++ ) {
-                                                       temp.set(i, j);
-                                                       op.fn.execute(temp, 
temp);
-                                                       
result.appendValue(temp.row, temp.column, avals[aix+j]);
-                                               }
-                                       }
-                               }
-                               else { //DENSE<-DENSE
-                                       result.allocateDenseBlock();
-                                       DenseBlock a = getDenseBlock();
-                                       DenseBlock c = result.getDenseBlock();
-                                       for( int i=0; i<rlen; i++ ) {
-                                               double[] avals = a.values(i);
-                                               int aix = a.pos(i);
-                                               for( int j=0; j<clen; j++ ) {
-                                                       temp.set(i, j);
-                                                       op.fn.execute(temp, 
temp);
-                                                       c.set(temp.row, 
temp.column, avals[aix+j]);
-                                               }
-                                       }
-                                       result.nonZeros = nonZeros;
-                               }
-                       }
-               }
+               if( !LibMatrixReorg.isSupportedReorgOperator(op) )
+                       throw new DMLRuntimeException("Unsupported reorg 
operation: "+op);
                
+               // core reorg runtime operations
+               LibMatrixReorg.reorg(this, result, op);
+       
                return result;
        }
 
@@ -4600,13 +4484,12 @@ public class MatrixBlock extends MatrixValue implements 
CacheBlock<MatrixBlock>,
        }
 
        @Override
-       public MatrixBlock zeroOutOperations(MatrixValue result, IndexRange 
range, boolean complementary) {
+       public MatrixBlock zeroOutOperations(MatrixValue result, IndexRange 
range) {
                checkType(result);
                double currentSparsity=(double)nonZeros/rlen/clen;
                double 
estimatedSps=currentSparsity*(range.rowEnd-range.rowStart+1)
                        *(range.colEnd-range.colStart+1)/rlen/clen;
-               if(!complementary)
-                       estimatedSps=currentSparsity-estimatedSps;
+               estimatedSps = currentSparsity-estimatedSps;
                
                boolean lsparse = evalSparseFormatInMemory(rlen, clen, 
(long)(estimatedSps*rlen*clen));
                
@@ -4620,13 +4503,11 @@ public class MatrixBlock extends MatrixValue implements 
CacheBlock<MatrixBlock>,
                {
                        if(sparseBlock!=null)
                        {
-                               if(!complementary)//if zero out
-                               {
-                                       for(int r=0; 
r<Math.min((int)range.rowStart, sparseBlock.numRows()); r++)
-                                               ((MatrixBlock) 
result).appendRow(r, sparseBlock.get(r));
-                                       for(int r=Math.min((int)range.rowEnd+1, 
sparseBlock.numRows()); r<Math.min(rlen, sparseBlock.numRows()); r++)
-                                               ((MatrixBlock) 
result).appendRow(r, sparseBlock.get(r));
-                               }
+                               for(int r=0; r<Math.min((int)range.rowStart, 
sparseBlock.numRows()); r++)
+                                       ((MatrixBlock) result).appendRow(r, 
sparseBlock.get(r));
+                               for(int r=Math.min((int)range.rowEnd+1, 
sparseBlock.numRows()); r<Math.min(rlen, sparseBlock.numRows()); r++)
+                                       ((MatrixBlock) result).appendRow(r, 
sparseBlock.get(r));
+                               
                                for(int r=(int)range.rowStart; 
r<=Math.min(range.rowEnd, sparseBlock.numRows()-1); r++)
                                {
                                        if(sparseBlock.isEmpty(r)) 
@@ -4634,35 +4515,21 @@ public class MatrixBlock extends MatrixValue implements 
CacheBlock<MatrixBlock>,
                                        int[] cols=sparseBlock.indexes(r);
                                        double[] values=sparseBlock.values(r);
                                        
-                                       if(complementary)//if selection
+                                       
+                                       int pos = sparseBlock.pos(r);
+                                       int len = sparseBlock.size(r);
+                                       int 
start=sparseBlock.posFIndexGTE(r,(int)range.colStart);
+                                       if(start<0) start=pos+len;
+                                       int 
end=sparseBlock.posFIndexGT(r,(int)range.colEnd);
+                                       if(end<0) end=pos+len;
+                                       
+                                       for(int i=pos; i<start; i++)
                                        {
-                                               int 
start=sparseBlock.posFIndexGTE(r,(int)range.colStart);
-                                               if(start<0) continue;
-                                               int 
end=sparseBlock.posFIndexGT(r,(int)range.colEnd);
-                                               if(end<0 || start>end) 
-                                                       continue;
-                                               
-                                               for(int i=start; i<end; i++)
-                                               {
-                                                       ((MatrixBlock) 
result).appendValue(r, cols[i], values[i]);
-                                               }
-                                       }else
+                                               ((MatrixBlock) 
result).appendValue(r, cols[i], values[i]);
+                                       }
+                                       for(int i=end; i<pos+len; i++)
                                        {
-                                               int pos = sparseBlock.pos(r);
-                                               int len = sparseBlock.size(r);
-                                               int 
start=sparseBlock.posFIndexGTE(r,(int)range.colStart);
-                                               if(start<0) start=pos+len;
-                                               int 
end=sparseBlock.posFIndexGT(r,(int)range.colEnd);
-                                               if(end<0) end=pos+len;
-                                               
-                                               for(int i=pos; i<start; i++)
-                                               {
-                                                       ((MatrixBlock) 
result).appendValue(r, cols[i], values[i]);
-                                               }
-                                               for(int i=end; i<pos+len; i++)
-                                               {
-                                                       ((MatrixBlock) 
result).appendValue(r, cols[i], values[i]);
-                                               }
+                                               ((MatrixBlock) 
result).appendValue(r, cols[i], values[i]);
                                        }
                                }
                        }
@@ -4671,37 +4538,25 @@ public class MatrixBlock extends MatrixValue implements 
CacheBlock<MatrixBlock>,
                        if(denseBlock!=null)
                        {
                                double[] a = getDenseBlockValues();
-                               if(complementary)//if selection
-                               {
-                                       int offset=((int)range.rowStart)*clen;
-                                       for(int r=(int) range.rowStart; 
r<=range.rowEnd; r++)
-                                       {
-                                               for(int c=(int) range.colStart; 
c<=range.colEnd; c++)
-                                                       ((MatrixBlock) 
result).appendValue(r, c, a[offset+c]);
-                                               offset+=clen;
-                                       }
-                               }else
+                               
+                               int offset=0;
+                               int r=0;
+                               for(; r<(int)range.rowStart; r++)
+                                       for(int c=0; c<clen; c++, offset++)
+                                               ((MatrixBlock) 
result).appendValue(r, c, a[offset]);
+                               
+                               for(; r<=(int)range.rowEnd; r++)
                                {
-                                       int offset=0;
-                                       int r=0;
-                                       for(; r<(int)range.rowStart; r++)
-                                               for(int c=0; c<clen; c++, 
offset++)
-                                                       ((MatrixBlock) 
result).appendValue(r, c, a[offset]);
-                                       
-                                       for(; r<=(int)range.rowEnd; r++)
-                                       {
-                                               for(int c=0; 
c<(int)range.colStart; c++)
-                                                       ((MatrixBlock) 
result).appendValue(r, c, a[offset+c]);
-                                               for(int c=(int)range.colEnd+1; 
c<clen; c++)
-                                                       ((MatrixBlock) 
result).appendValue(r, c, a[offset+c]);
-                                               offset+=clen;
-                                       }
-                                       
-                                       for(; r<rlen; r++)
-                                               for(int c=0; c<clen; c++, 
offset++)
-                                                       ((MatrixBlock) 
result).appendValue(r, c, a[offset]);
+                                       for(int c=0; c<(int)range.colStart; c++)
+                                               ((MatrixBlock) 
result).appendValue(r, c, a[offset+c]);
+                                       for(int c=(int)range.colEnd+1; c<clen; 
c++)
+                                               ((MatrixBlock) 
result).appendValue(r, c, a[offset+c]);
+                                       offset+=clen;
                                }
                                
+                               for(; r<rlen; r++)
+                                       for(int c=0; c<clen; c++, offset++)
+                                               ((MatrixBlock) 
result).appendValue(r, c, a[offset]);
                        }
                }
                return (MatrixBlock)result;
@@ -5793,39 +5648,6 @@ public class MatrixBlock extends MatrixValue implements 
CacheBlock<MatrixBlock>,
         */
        public static boolean isThreadSafe(boolean sparse) {
                return !sparse || DEFAULT_SPARSEBLOCK == SparseBlock.Type.MCSR; 
//only MCSR thread-safe 
-       } 
-       
-       /**
-        * Checks for existing NaN values in the matrix block.
-        * @throws DMLRuntimeException if the blocks contains at least one NaN.
-        */
-       public void checkNaN() {
-               if( isEmptyBlock(false) )
-                       return;
-               if( sparse ) {
-                       SparseBlock sblock = sparseBlock;
-                       for(int i=0; i<rlen; i++) {
-                               if( sblock.isEmpty(i) ) continue;
-                               int alen = sblock.size(i);
-                               int apos = sblock.pos(i);
-                               int[] aix = sblock.indexes(i);
-                               double[] avals = sblock.values(i);
-                               for(int k=apos; k<apos+alen; k++) {
-                                       if( Double.isNaN(avals[k]) )
-                                               throw new 
DMLRuntimeException("NaN encountered at position ["+i+","+aix[k]+"].");
-                               }
-                       }
-               }
-               else {
-                       DenseBlock dblock = denseBlock;
-                       for(int i=0; i<rlen; i++) {
-                               int aix = dblock.pos(i);
-                               double[] avals = dblock.values(i);
-                               for(int j=0; j<clen; j++)
-                                       if( Double.isNaN(avals[aix+j]) )
-                                               throw new 
DMLRuntimeException("NaN encountered at position ["+i+","+j+"].");
-                       }
-               }
        }
        
        @Override
diff --git a/src/main/java/org/apache/sysds/runtime/matrix/data/MatrixCell.java 
b/src/main/java/org/apache/sysds/runtime/matrix/data/MatrixCell.java
index f892766796..4782dba879 100644
--- a/src/main/java/org/apache/sysds/runtime/matrix/data/MatrixCell.java
+++ b/src/main/java/org/apache/sysds/runtime/matrix/data/MatrixCell.java
@@ -249,7 +249,7 @@ public class MatrixCell extends MatrixValue implements 
Serializable
        }
 
        @Override
-       public MatrixValue zeroOutOperations(MatrixValue result, IndexRange 
range, boolean complementary) {
+       public MatrixValue zeroOutOperations(MatrixValue result, IndexRange 
range) {
                if(range.rowStart!=0 || range.rowEnd!=0 || range.colStart!=0 || 
range.colEnd!=0)
                        throw new DMLRuntimeException("wrong range: "+range+" 
for matrixCell");
                MatrixCell c3=checkType(result);
diff --git 
a/src/main/java/org/apache/sysds/runtime/matrix/data/MatrixValue.java 
b/src/main/java/org/apache/sysds/runtime/matrix/data/MatrixValue.java
index fc8ffd2728..a1a4254653 100644
--- a/src/main/java/org/apache/sysds/runtime/matrix/data/MatrixValue.java
+++ b/src/main/java/org/apache/sysds/runtime/matrix/data/MatrixValue.java
@@ -147,7 +147,7 @@ public abstract class MatrixValue implements 
WritableComparable
        
        public abstract void incrementalAggregate(AggregateOperator aggOp, 
MatrixValue newWithCorrection);
 
-       public abstract MatrixValue zeroOutOperations(MatrixValue result, 
IndexRange range, boolean complementary);
+       public abstract MatrixValue zeroOutOperations(MatrixValue result, 
IndexRange range);
        
        /**
         * Slice out up to 4 matrixBlocks that are separated by the row and col 
Cuts.
diff --git 
a/src/test/java/org/apache/sysds/test/functions/builtin/part2/BuiltinRaGroupbyTest.java
 
b/src/test/java/org/apache/sysds/test/functions/builtin/part2/BuiltinRaGroupbyTest.java
index 770f8c29e4..18ad933e77 100644
--- 
a/src/test/java/org/apache/sysds/test/functions/builtin/part2/BuiltinRaGroupbyTest.java
+++ 
b/src/test/java/org/apache/sysds/test/functions/builtin/part2/BuiltinRaGroupbyTest.java
@@ -26,7 +26,6 @@ import org.apache.sysds.test.TestConfiguration;
 import org.apache.sysds.test.TestUtils;
 import org.junit.Test;
 
-import java.util.Arrays;
 import java.util.HashMap;
 
 public class BuiltinRaGroupbyTest extends AutomatedTestBase

Reply via email to