#ifdef DISABLE_EVAL_SKIP_MULTIPLE
i = (int)d_index.size()-1;
#endif
+ Trace("rsi-debug") << "RepSetIterator::incrementAtIndex: " << i << std::endl;
//increment d_index
if( i>=0){
Trace("rsi-debug") << "domain size of " << i << " is " << domainSize(i) << std::endl;
}
}
if( i==-1 ){
+ Trace("rsi-debug") << "increment failed" << std::endl;
d_index.clear();
return -1;
}else{
}
int RepSetIterator::do_reset_increment( int i, bool initial ) {
+ Trace("rsi-debug") << "RepSetIterator::do_reset_increment: " << i
+ << ", initial=" << initial << std::endl;
for( unsigned ii=(i+1); ii<d_index.size(); ii++ ){
bool emptyDomain = false;
int ri_res = resetIndex( ii, initial );
//force next iteration if currently an empty domain
if (emptyDomain)
{
- Trace("rsi-debug") << "This is an empty domain, increment." << std::endl;
- return increment();
+ Trace("rsi-debug") << "This is an empty domain (index " << ii << ")."
+ << std::endl;
+ if (ii > 0)
+ {
+ // increment at the previous index
+ return incrementAtIndex(ii - 1);
+ }
+ else
+ {
+ // this is the first index, we are done
+ d_index.clear();
+ return -1;
+ }
}
}
+ Trace("rsi-debug") << "Finished, return " << i << std::endl;
return i;
}
regress1/fmf/issue3587.smt2
regress1/fmf/issue3615.smt2
regress1/fmf/issue3626.smt2
+ regress1/fmf/issue3689.smt2
regress1/fmf/issue916-fmf-or.smt2
regress1/fmf/jasmin-cdt-crash.smt2
regress1/fmf/ko-bound-set.cvc