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())) );
        }

Reply via email to