aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/ScopePropagatorStrategy.xtend
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-08-01 01:00:12 +0200
committerLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-08-01 01:00:12 +0200
commit7021a4d1f2805ebf3145cbc3893761d12f23361f (patch)
treeb75c51136d3b593f94bf517a8552a1dbf8abdd2b /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/ScopePropagatorStrategy.xtend
parentBuild Cbc wrapper under Ubuntu 18.04 (diff)
downloadVIATRA-Generator-7021a4d1f2805ebf3145cbc3893761d12f23361f.tar.gz
VIATRA-Generator-7021a4d1f2805ebf3145cbc3893761d12f23361f.tar.zst
VIATRA-Generator-7021a4d1f2805ebf3145cbc3893761d12f23361f.zip
Configurability and better statistics for measurements
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/ScopePropagatorStrategy.xtend')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/ScopePropagatorStrategy.xtend64
1 files changed, 64 insertions, 0 deletions
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 @@
1package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality
2
3import org.eclipse.xtend.lib.annotations.Data
4import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor
5
6enum PolyhedralScopePropagatorConstraints {
7 TypeHierarchy,
8 Relational
9}
10
11enum PolyhedralScopePropagatorSolver {
12 Z3Real,
13 Z3Integer,
14 Cbc,
15 Clp
16}
17
18abstract class ScopePropagatorStrategy {
19 public static val BasicCount = new Simple("BasicCount")
20
21 public static val BasicTypeHierarchy = new Simple("BasicTypeHierarchy")
22
23 private new() {
24 }
25
26 def boolean requiresUpperBoundIndexing()
27
28 static class Simple extends ScopePropagatorStrategy {
29 val String name
30
31 @FinalFieldsConstructor
32 private new() {
33 }
34
35 override requiresUpperBoundIndexing() {
36 false
37 }
38
39 override toString() {
40 name
41 }
42 }
43
44 @Data
45 static class Polyhedral extends ScopePropagatorStrategy {
46 public static val UNLIMITED_TIME = -1
47
48 val PolyhedralScopePropagatorConstraints constraints
49 val PolyhedralScopePropagatorSolver solver
50 val double timeoutSeconds
51
52 @FinalFieldsConstructor
53 new() {
54 }
55
56 new(PolyhedralScopePropagatorConstraints constraints, PolyhedralScopePropagatorSolver solver) {
57 this(constraints, solver, UNLIMITED_TIME)
58 }
59
60 override requiresUpperBoundIndexing() {
61 constraints == PolyhedralScopePropagatorConstraints.Relational
62 }
63 }
64}