ReneEnjilian commented on code in PR #1986: URL: https://github.com/apache/systemds/pull/1986#discussion_r1460130696
########## 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: Okay I changed all instances where this occurs. Further, I just realized that the name of the method simplifyMatrixFactorization() might be misleading because somebody might think we perform a matrix factorization (i.e., [decomposition](https://en.wikipedia.org/wiki/Matrix_decomposition)) instead of factoring out a term (i.e., here matrix A). Should I change the name to something more neutral like simplifyMatrixDistributiveFactorization() ? -- 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