You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On some instances, there is an assertion failure when PositiveTableConstraint::InitialPropagate
calls IntervalUp64.
You pass position+1 as argument, but position can have any value between 0 and 63.
If it is 63, then you call IntervalUp64(64) which leads to the assertion failure.
If you run the program with NDEBUG, this leads to an infinite loop.
The trivial solution would be to add a check, but maybe there's something smarter that
can be done.
Reported by phil.vank on 2011-09-16 05:55:00
The text was updated successfully, but these errors were encountered:
From what I understand from the code you could write it like this, solving the problem
and making it faster :
virtual void InitialPropagate() {
// Build active_ structure.
for (int var_index = 0; var_index < arity_; ++var_index) {
for (ConstIter<hash_map<int64, uint64*> > it(masks_[var_index]); !it.at_end();
++it) {
if (!vars_[var_index]->Contains(it->first)) {
for (int i = 0; i < length_; ++i) {
active_tuples_[i] &= ~(active_tuples_[i] & it->second[i]);
}
}
}
}
(...)
}
Originally reported on Google Code with ID 6
Reported by
phil.vank
on 2011-09-16 05:55:00The text was updated successfully, but these errors were encountered: