diff options
author | Kristóf Marussy <kris7topher@gmail.com> | 2019-05-10 00:01:57 -0400 |
---|---|---|
committer | Kristóf Marussy <kris7topher@gmail.com> | 2019-05-10 00:01:57 -0400 |
commit | 5a55d0d306e85a697aa86bdf3f9caf243d384faa (patch) | |
tree | 36c834f0d05b0ce788b67163112fd9e935768629 /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu | |
parent | Interval aggregation operators (diff) | |
download | VIATRA-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')
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 | } |