diff options
author | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-10-16 13:26:07 +1100 |
---|---|---|
committer | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-10-16 13:26:07 +1100 |
commit | 18a747edd76918e2a1a4fb608b2d3923fcc535fa (patch) | |
tree | bdb46b63234a649a32c8db36e4e232dbfff5730b /impl/VariableAssignment.hpp | |
parent | 697c1c0cd3815eee72b3eedb874fe0e044a69432 (diff) |
A quick fix to the solver.
Diffstat (limited to 'impl/VariableAssignment.hpp')
-rw-r--r-- | impl/VariableAssignment.hpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/impl/VariableAssignment.hpp b/impl/VariableAssignment.hpp index ae5efd7..a9247b5 100644 --- a/impl/VariableAssignment.hpp +++ b/impl/VariableAssignment.hpp @@ -38,8 +38,16 @@ struct DynamicVariableAssignment : public VariableAssignment<Domain> { if (_stable.contains(x)) { _stable.remove(x); _values[x] = 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)); + } } } |