From 5a55d0d306e85a697aa86bdf3f9caf243d384faa Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Fri, 10 May 2019 00:01:57 -0400 Subject: Neutral element for sum is [0, 0] --- .../logic2viatra/interval/IntervalAggregationMode.java | 9 +++++++++ .../logic2viatra/interval/IntervalAggregationOperator.xtend | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner') 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 { } }; } + + @Override + public Interval getNeutral() { + return Interval.ZERO; + } }, JOIN("intervalJoin", "Calculate the smallest interval containing all the intervals in a set") { @@ -63,4 +68,8 @@ public enum IntervalAggregationMode implements BinaryOperator { } public abstract IntervalRedBlackNode createNode(Interval interval); + + public Interval getNeutral() { + return Interval.EMPTY; + } } 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 stream) { - stream.reduce(mode).orElse(null) + stream.reduce(mode).orElse(mode.neutral) } } -- cgit v1.2.3-54-g00ecf