diff options
Diffstat (limited to 'impl/VariableAssignment.hpp')
-rw-r--r-- | impl/VariableAssignment.hpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/impl/VariableAssignment.hpp b/impl/VariableAssignment.hpp index fff00b5..08002b8 100644 --- a/impl/VariableAssignment.hpp +++ b/impl/VariableAssignment.hpp @@ -41,8 +41,8 @@ struct DynamicVariableAssignment : public VariableAssignment<Domain> { log::fixpoint << indent() << "Invalidating " << x << std::endl; _unstable.insert(x); - _old_values[x] = _values[x]; _touched.insert(x); + _old_values[x] = _values[x]; _values[x] = infinity<Domain>(); IdSet<Variable<Domain> > infl = _influence[x]; @@ -66,19 +66,15 @@ struct DynamicVariableAssignment : public VariableAssignment<Domain> { it != ei; ++it) { Variable<Domain>& var = _system.variable(*it); - //if (_old_values[var] != _values[var]) { + if (!_unstable.contains(var) && _old_values[var] != _values[var]) { changed.insert(var); _touched.remove(var); - //} + } } //_touched.clear(); return changed; } - const IdMap<Variable<Domain>, Domain> get_old_values() const { - return _old_values; - } - private: void solve(const Variable<Domain>& x) { |