Ensure the `wumm` new pattern does not have foreign parents
Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/14bd65a5 Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/14bd65a5 Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/14bd65a5 Branch: refs/heads/master Commit: 14bd65a551b227860faba56ed1633db85d7110f2 Parents: 479b9da Author: Dylan Hutchison <[email protected]> Authored: Thu Jul 13 01:41:51 2017 -0700 Committer: Dylan Hutchison <[email protected]> Committed: Thu Jul 13 01:41:51 2017 -0700 ---------------------------------------------------------------------- .../sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/14bd65a5/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java index 6246270..09b66de 100644 --- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java +++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java @@ -1960,7 +1960,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule LOG.debug("Applied simplifyWeightedUnaryMM1 (line "+hi.getBeginLine()+")"); } - //Pattern 1.5) (W*(U%*%t(V))*2 or 2*(W*(U%*%t(V)) + //Pattern 2.7) (W*(U%*%t(V))*2 or 2*(W*(U%*%t(V)) if( !appliedPattern && hi instanceof BinaryOp && HopRewriteUtils.isValidOp(((BinaryOp)hi).getOp(), OpOp2.MULT) && (HopRewriteUtils.isLiteralOfValue(hi.getInput().get(0), 2) @@ -1974,6 +1974,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule } if ( HopRewriteUtils.isBinary(nl, OpOp2.MULT) + && nl.getParent().size()==1 // ensure no foreign parents && HopRewriteUtils.isEqualSize(nl.getInput().get(0), nl.getInput().get(1)) //prevent mv && nl.getDim2() > 1 //not applied for vector-vector mult && nl.getInput().get(0).getDataType() == DataType.MATRIX
