summaryrefslogtreecommitdiff
path: root/impl
diff options
context:
space:
mode:
authorCarlo Zancanaro <carlo@carlo-laptop>2012-10-23 18:03:33 +1100
committerCarlo Zancanaro <carlo@carlo-laptop>2012-10-23 18:03:33 +1100
commit8253e957e54d31699b4bd827300bc1fa794c4660 (patch)
treed979b685deff45d47c48b530c0e5e291621b2c8f /impl
parent0c62b0ba1b307ddc626a62127d835738775bb20d (diff)
Another fix, with a test for what the problem was.
Diffstat (limited to 'impl')
-rw-r--r--impl/VariableAssignment.hpp13
-rw-r--r--impl/test/11.eqns2
-rw-r--r--impl/test/11.soln2
3 files changed, 6 insertions, 11 deletions
diff --git a/impl/VariableAssignment.hpp b/impl/VariableAssignment.hpp
index 3f4ff70..21226ac 100644
--- a/impl/VariableAssignment.hpp
+++ b/impl/VariableAssignment.hpp
@@ -62,17 +62,8 @@ struct DynamicVariableAssignment : public VariableAssignment<Domain> {
_values[x] = unknown(infinity<Domain>());
solve(x);
- /*
- IdSet<Variable<Domain> > infl = _influence[x];
- _influence[x].clear();
- for (typename IdSet<Variable<Domain> >::iterator
- it = infl.begin(),
- ei = infl.end();
- it != ei;
- ++it) {
- invalidate(_system.variable(*it));
- }
- */
+ if (_values[x] == infinity<Domain>())
+ _values[x] = _values[x].asKnown();
}
}
diff --git a/impl/test/11.eqns b/impl/test/11.eqns
new file mode 100644
index 0000000..4edc114
--- /dev/null
+++ b/impl/test/11.eqns
@@ -0,0 +1,2 @@
+x = y
+y = max(-100000, y+1)
diff --git a/impl/test/11.soln b/impl/test/11.soln
new file mode 100644
index 0000000..cdfcb1f
--- /dev/null
+++ b/impl/test/11.soln
@@ -0,0 +1,2 @@
+x = inf
+y = inf