aboutsummaryrefslogtreecommitdiffstats
path: root/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericTranslator.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericTranslator.xtend')
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericTranslator.xtend21
1 files changed, 4 insertions, 17 deletions
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericTranslator.xtend b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericTranslator.xtend
index a11ae8a8..9ae36a6d 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericTranslator.xtend
+++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericTranslator.xtend
@@ -58,31 +58,18 @@ class NumericTranslator {
58 return res 58 return res
59 } 59 }
60 60
61 def NumericProblemSolver selectProblemSolver(String selection) {
62// return new NumericProblemSolver
63// add numeric solver decision procedure here
64 if (numericSolver instanceof NumericDynamicProblemSolver) {
65 val NumericDynamicProblemSolver dynamicSolver = numericSolver as NumericDynamicProblemSolver
66 return dynamicSolver.selectSolver(selection);
67 } else{
68 if (numericSolver instanceof NumericZ3ProblemSolver) return new NumericZ3ProblemSolver(this.timeout)
69 return numericSolver;
70 }
71 }
72 61
73 def delegateIsSatisfiable(Map<PConstraint, Iterable<Object[]>> matches, String select) { 62 def delegateIsSatisfiable(Map<PConstraint, Iterable<Object[]>> matches, String select) {
74 val input = formNumericProblemInstance(matches) 63 val input = formNumericProblemInstance(matches)
75 val solver = selectProblemSolver(select) 64 val satisfiability = numericSolver.isSatisfiable(input)
76 val satisfiability = solver.isSatisfiable(input) 65 numericSolver.updateTimes
77 solver.updateTimes
78 return satisfiability 66 return satisfiability
79 } 67 }
80 68
81 def delegateGetSolution(List<PrimitiveElement> primitiveElements, Map<PConstraint, Iterable<Object[]>> matches, String select) { 69 def delegateGetSolution(List<PrimitiveElement> primitiveElements, Map<PConstraint, Iterable<Object[]>> matches, String select) {
82 val input = formNumericProblemInstance(matches) 70 val input = formNumericProblemInstance(matches)
83 val solver = selectProblemSolver(select) 71 val solution = numericSolver.getOneSolution(primitiveElements,input)
84 val solution = solver.getOneSolution(primitiveElements,input) 72 numericSolver.updateTimes
85 solver.updateTimes
86 return solution 73 return solution
87 } 74 }
88 75