ReneEnjilian commented on code in PR #1986: URL: https://github.com/apache/systemds/pull/1986#discussion_r1460485453
########## src/main/java/org/apache/sysds/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java: ########## @@ -1137,46 +1138,88 @@ else if( right.getDim2()>1 ) //multi column vector return hi; } - - private static Hop simplifyDiagMatrixMult(Hop parent, Hop hi, int pos) - { - if( hi instanceof ReorgOp && ((ReorgOp)hi).getOp()==ReOrgOp.DIAG && hi.getDim2()==1 ) //diagM2V + + private static Hop simplifyDiagMatrixMult(Hop parent, Hop hi, int pos) { + if(hi instanceof ReorgOp && ((ReorgOp) hi).getOp() == ReOrgOp.DIAG && hi.getDim2() == 1) //diagM2V { Hop hi2 = hi.getInput().get(0); - if( HopRewriteUtils.isMatrixMultiply(hi2) ) //X%*%Y + if(HopRewriteUtils.isMatrixMultiply(hi2)) //X%*%Y { Hop left = hi2.getInput().get(0); Hop right = hi2.getInput().get(1); - + //create new operators (incl refresh size inside for transpose) ReorgOp trans = HopRewriteUtils.createTranspose(right); BinaryOp mult = HopRewriteUtils.createBinary(left, trans, OpOp2.MULT); AggUnaryOp rowSum = HopRewriteUtils.createAggUnaryOp(mult, AggOp.SUM, Direction.Row); - + //rehang new subdag under parent node HopRewriteUtils.replaceChildReference(parent, hi, rowSum, pos); HopRewriteUtils.cleanupUnreferenced(hi, hi2); - + hi = rowSum; LOG.debug("Applied simplifyDiagMatrixMult"); - } + } } - + return hi; } - - private static Hop simplifySumDiagToTrace(Hop hi) - { - if( hi instanceof AggUnaryOp ) - { + + private static Hop simplifyMatrixFactorization(Hop parent, Hop hi, int pos) { + // Check for Hop being Binary + if(hi instanceof BinaryOp) { + Hop left = hi.getInput().get(0); Review Comment: I am using the name simplifyDistributiveMatrixMult() now. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@systemds.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org