diff options
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.xtend | 32 |
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 { | |||
72 | abstract class LinearBoundedExpression { | 68 | abstract 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 |