Repository: systemml
Updated Branches:
  refs/heads/master a1eb7bced -> a04261d35


[MINOR] Improved average-case sparsity estimates of binary operations

Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/a04261d3
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/a04261d3
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/a04261d3

Branch: refs/heads/master
Commit: a04261d3571b9177ab638c3724886e232e54f190
Parents: a1eb7bc
Author: Matthias Boehm <[email protected]>
Authored: Mon Jul 9 20:30:49 2018 -0700
Committer: Matthias Boehm <[email protected]>
Committed: Mon Jul 9 20:30:49 2018 -0700

----------------------------------------------------------------------
 src/main/java/org/apache/sysml/hops/OptimizerUtils.java | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/systemml/blob/a04261d3/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java 
b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
index 3ee6bc6..3f1a8cf 100644
--- a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
+++ b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
@@ -1085,10 +1085,12 @@ public class OptimizerUtils
                                case MIN:
                                case MAX:
                                case OR:
-                                       ret = Math.min(1, sp1 + sp2); break;
+                                       ret = worstcase ? Math.min(1, sp1 + 
sp2) :
+                                               sp1 + sp2 - sp1 * sp2; break;
                                case MULT:
                                case AND:
-                                       ret = Math.min(sp1, sp2); break;
+                                       ret = worstcase ? Math.min(sp1, sp2) :
+                                               sp1 * sp2; break;
                                case DIV:
                                        ret = Math.min(1, sp1 + (1-sp2)); break;
                                case MODULUS:

Reply via email to