aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/PolyhedronSolver.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/PolyhedronSolver.xtend')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/PolyhedronSolver.xtend32
1 files changed, 20 insertions, 12 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/PolyhedronSolver.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/PolyhedronSolver.xtend
index 08bf25b9..9c6cb82e 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/PolyhedronSolver.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/PolyhedronSolver.xtend
@@ -52,18 +52,14 @@ class Polyhedron {
52 val List<LinearBoundedExpression> expressionsToSaturate 52 val List<LinearBoundedExpression> expressionsToSaturate
53 53
54 override toString() ''' 54 override toString() '''
55 Dimensions: 55 Dimensions:
56 «FOR dimension : dimensions» 56 «FOR dimension : dimensions»
57 «dimension» 57 «dimension»
58 «ENDFOR» 58 «ENDFOR»
59 Constraints: 59 Constraints:
60 «FOR constraint : constraints» 60 «FOR constraint : constraints»
61 «constraint» 61 «constraint»
62 «ENDFOR» 62 «ENDFOR»
63««« Saturate:
64««« «FOR expression : expressionsToSaturate»
65««« «IF expression instanceof Dimension»dimension«ELSEIF expression instanceof LinearConstraint»constraint«ELSE»unknown«ENDIF» «expression»
66««« «ENDFOR»
67 ''' 63 '''
68 64
69} 65}
@@ -72,6 +68,18 @@ class Polyhedron {
72abstract class LinearBoundedExpression { 68abstract class LinearBoundedExpression {
73 var Integer lowerBound 69 var Integer lowerBound
74 var Integer upperBound 70 var Integer upperBound
71
72 def void tightenLowerBound(Integer tighterBound) {
73 if (lowerBound === null || (tighterBound !== null && lowerBound < tighterBound)) {
74 lowerBound = tighterBound
75 }
76 }
77
78 def void tightenUpperBound(Integer tighterBound) {
79 if (upperBound === null || (tighterBound !== null && upperBound > tighterBound)) {
80 upperBound = tighterBound
81 }
82 }
75} 83}
76 84
77@Accessors 85@Accessors