From 7021a4d1f2805ebf3145cbc3893761d12f23361f Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Thu, 1 Aug 2019 01:00:12 +0200 Subject: Configurability and better statistics for measurements --- .../cardinality/ScopePropagatorStrategy.xtend | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/ScopePropagatorStrategy.xtend (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/ScopePropagatorStrategy.xtend') diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/ScopePropagatorStrategy.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/ScopePropagatorStrategy.xtend new file mode 100644 index 00000000..37e56c9a --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/ScopePropagatorStrategy.xtend @@ -0,0 +1,64 @@ +package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality + +import org.eclipse.xtend.lib.annotations.Data +import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor + +enum PolyhedralScopePropagatorConstraints { + TypeHierarchy, + Relational +} + +enum PolyhedralScopePropagatorSolver { + Z3Real, + Z3Integer, + Cbc, + Clp +} + +abstract class ScopePropagatorStrategy { + public static val BasicCount = new Simple("BasicCount") + + public static val BasicTypeHierarchy = new Simple("BasicTypeHierarchy") + + private new() { + } + + def boolean requiresUpperBoundIndexing() + + static class Simple extends ScopePropagatorStrategy { + val String name + + @FinalFieldsConstructor + private new() { + } + + override requiresUpperBoundIndexing() { + false + } + + override toString() { + name + } + } + + @Data + static class Polyhedral extends ScopePropagatorStrategy { + public static val UNLIMITED_TIME = -1 + + val PolyhedralScopePropagatorConstraints constraints + val PolyhedralScopePropagatorSolver solver + val double timeoutSeconds + + @FinalFieldsConstructor + new() { + } + + new(PolyhedralScopePropagatorConstraints constraints, PolyhedralScopePropagatorSolver solver) { + this(constraints, solver, UNLIMITED_TIME) + } + + override requiresUpperBoundIndexing() { + constraints == PolyhedralScopePropagatorConstraints.Relational + } + } +} -- cgit v1.2.3-70-g09d2