Repository: systemml Updated Branches: refs/heads/master 6af1df01d -> 52aae222c
[SYSTEMML-2075] Fix invalid constant folding of matrix-scalar and/or This patch fixes an issue of invalid constant folding of matrix-scalar logical operations, which occured due to the recently added support for elementwise logical operations. Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/52aae222 Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/52aae222 Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/52aae222 Branch: refs/heads/master Commit: 52aae222c688859de18d84fd92ae7171dec5dae0 Parents: 6af1df0 Author: Matthias Boehm <[email protected]> Authored: Wed Jan 24 18:47:04 2018 -0800 Committer: Matthias Boehm <[email protected]> Committed: Wed Jan 24 18:47:04 2018 -0800 ---------------------------------------------------------------------- .../org/apache/sysml/hops/rewrite/RewriteConstantFolding.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/52aae222/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java index b25a671..7684c78 100644 --- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java +++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java @@ -268,14 +268,14 @@ public class RewriteConstantFolding extends HopRewriteRule private static boolean isApplicableFalseConjunctivePredicate( Hop hop ) throws HopsException { ArrayList<Hop> in = hop.getInput(); - return ( HopRewriteUtils.isBinary(hop, OpOp2.AND) + return ( HopRewriteUtils.isBinary(hop, OpOp2.AND) && hop.getDataType().isScalar() && ( (in.get(0) instanceof LiteralOp && !((LiteralOp)in.get(0)).getBooleanValue()) ||(in.get(1) instanceof LiteralOp && !((LiteralOp)in.get(1)).getBooleanValue())) ); } private static boolean isApplicableTrueDisjunctivePredicate( Hop hop ) throws HopsException { ArrayList<Hop> in = hop.getInput(); - return ( HopRewriteUtils.isBinary(hop, OpOp2.OR) + return ( HopRewriteUtils.isBinary(hop, OpOp2.OR) && hop.getDataType().isScalar() && ( (in.get(0) instanceof LiteralOp && ((LiteralOp)in.get(0)).getBooleanValue()) ||(in.get(1) instanceof LiteralOp && ((LiteralOp)in.get(1)).getBooleanValue())) ); }
