aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-05-10 00:01:57 -0400
committerLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-05-10 00:01:57 -0400
commit5a55d0d306e85a697aa86bdf3f9caf243d384faa (patch)
tree36c834f0d05b0ce788b67163112fd9e935768629 /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu
parentInterval aggregation operators (diff)
downloadVIATRA-Generator-5a55d0d306e85a697aa86bdf3f9caf243d384faa.tar.gz
VIATRA-Generator-5a55d0d306e85a697aa86bdf3f9caf243d384faa.tar.zst
VIATRA-Generator-5a55d0d306e85a697aa86bdf3f9caf243d384faa.zip
Neutral element for sum is [0, 0]
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/interval/IntervalAggregationMode.java9
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/interval/IntervalAggregationOperator.xtend4
2 files changed, 11 insertions, 2 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/interval/IntervalAggregationMode.java b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/interval/IntervalAggregationMode.java
index f5bd2efc..66dcb00f 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/interval/IntervalAggregationMode.java
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/interval/IntervalAggregationMode.java
@@ -21,6 +21,11 @@ public enum IntervalAggregationMode implements BinaryOperator<Interval> {
21 } 21 }
22 }; 22 };
23 } 23 }
24
25 @Override
26 public Interval getNeutral() {
27 return Interval.ZERO;
28 }
24 }, 29 },
25 30
26 JOIN("intervalJoin", "Calculate the smallest interval containing all the intervals in a set") { 31 JOIN("intervalJoin", "Calculate the smallest interval containing all the intervals in a set") {
@@ -63,4 +68,8 @@ public enum IntervalAggregationMode implements BinaryOperator<Interval> {
63 } 68 }
64 69
65 public abstract IntervalRedBlackNode createNode(Interval interval); 70 public abstract IntervalRedBlackNode createNode(Interval interval);
71
72 public Interval getNeutral() {
73 return Interval.EMPTY;
74 }
66} 75}
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/interval/IntervalAggregationOperator.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/interval/IntervalAggregationOperator.xtend
index 940c71bb..21d3d73b 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/interval/IntervalAggregationOperator.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/interval/IntervalAggregationOperator.xtend
@@ -36,13 +36,13 @@ class IntervalAggregationOperator implements IMultisetAggregationOperator<Interv
36 36
37 override getAggregate(IntervalRedBlackNode result) { 37 override getAggregate(IntervalRedBlackNode result) {
38 if (result.leaf) { 38 if (result.leaf) {
39 null 39 mode.neutral
40 } else { 40 } else {
41 result.result 41 result.result
42 } 42 }
43 } 43 }
44 44
45 override aggregateStream(Stream<Interval> stream) { 45 override aggregateStream(Stream<Interval> stream) {
46 stream.reduce(mode).orElse(null) 46 stream.reduce(mode).orElse(mode.neutral)
47 } 47 }
48} 48}