@@ -1397,7 +1397,7 @@ namespace lp {
1397
1397
std_vector<unsigned > sorted_changed_terms;
1398
1398
std_vector<unsigned > processed_terms;
1399
1399
m_tightened_columns.reset ();
1400
- for (unsigned j: m_terms_to_tighten) {
1400
+ for (unsigned j: m_terms_to_tighten) {
1401
1401
if (j >= lra.column_count () ||
1402
1402
!lra.column_has_term (j) ||
1403
1403
lra.column_is_free (j) ||
@@ -1423,14 +1423,19 @@ namespace lp {
1423
1423
);
1424
1424
for (unsigned j : sorted_changed_terms) {
1425
1425
m_terms_to_tighten.remove (j);
1426
- r = tighten_bounds_for_term_column (j);
1427
- if (r != lia_move::undef) {
1426
+ auto r0 = tighten_bounds_for_term_column (j);
1427
+ if (r0 == lia_move::conflict) {
1428
+ r = r0;
1428
1429
break ;
1429
- }
1430
+ }
1431
+ else if (r0 == lia_move::continue_with_check)
1432
+ r = r0;
1433
+ else if (r0 == lia_move::branch && r == lia_move::undef)
1434
+ r = r0;
1430
1435
}
1431
- for (unsigned j :processed_terms) {
1436
+ for (unsigned j : processed_terms)
1432
1437
m_terms_to_tighten.remove (j);
1433
- }
1438
+ TRACE ( " dio " , tout << r << " \n " );
1434
1439
return r;
1435
1440
}
1436
1441
@@ -1802,10 +1807,10 @@ namespace lp {
1802
1807
lia_move ret = process_f (f_vector);
1803
1808
if (ret != lia_move::undef)
1804
1809
return ret;
1805
- TRACE (" dio" , print_S (tout););
1806
1810
ret = tighten_terms_with_S ();
1807
1811
if (ret == lia_move::conflict)
1808
1812
lra.stats ().m_dio_tighten_conflicts ++;
1813
+ TRACE (" dio" , print_S (tout););
1809
1814
return ret;
1810
1815
}
1811
1816
0 commit comments