@@ -1354,41 +1354,25 @@ namespace lp {
1354
1354
}
1355
1355
1356
1356
lia_move tighten_terms_with_S () {
1357
- // Copy changed terms to another vector for sorting
1358
- std_vector<unsigned > sorted_changed_terms;
1359
1357
std_vector<unsigned > cleanup;
1358
+ lia_move ret = lia_move::undef;
1360
1359
for (unsigned j : m_changed_terms) {
1361
- if (
1362
- j >= lra.column_count () ||
1363
- !lra.column_has_term (j) ||
1364
- lra.column_is_free (j) ||
1360
+ cleanup.push_back (j);
1361
+ if (j >= lra.column_count ()) continue ;
1362
+ if (!lra.column_has_term (j) || lra.column_is_free (j) ||
1365
1363
is_fixed (j) || !lia.column_is_int (j)) {
1366
- cleanup.push_back (j);
1367
- continue ;
1368
- }
1369
- sorted_changed_terms.push_back (j);
1370
- }
1371
- // Sort by term_weight descending
1372
- std::sort (sorted_changed_terms.begin (), sorted_changed_terms.end (),
1373
- [this ](unsigned j1 , unsigned j2) {
1374
- return term_weight (lra.get_term (j1 )) > term_weight (lra.get_term (j2) );
1375
- });
1376
-
1377
- lia_move r = lia_move::undef;
1378
- // Process sorted terms
1379
- for (unsigned j : sorted_changed_terms) {
1380
- m_changed_terms.remove (j);
1381
-
1382
-
1383
- if (tighten_bounds_for_term_column (j)) {
1384
- r = lia_move::conflict;
1364
+ continue ;
1365
+ }
1366
+
1367
+ if (tighten_bounds_for_term_column (j)) {
1368
+ ret = lia_move::conflict;
1385
1369
break ;
1386
1370
}
1387
1371
}
1388
- for (unsigned j : cleanup) {
1372
+ for (unsigned j: cleanup) {
1389
1373
m_changed_terms.remove (j);
1390
1374
}
1391
- return r ;
1375
+ return ret ;
1392
1376
}
1393
1377
1394
1378
std::ostream& print_queue (std::queue<unsigned > q, std::ostream& out) {
@@ -1999,8 +1983,8 @@ namespace lp {
1999
1983
}
2000
1984
}
2001
1985
2002
- unsigned find_markovich_number (unsigned k, unsigned h) {
2003
- return m_e_matrix.m_columns [k].size () * m_e_matrix.m_rows [h].size ();
1986
+ unsigned markovich_number (unsigned k, unsigned h) {
1987
+ return ( unsigned ) m_e_matrix.m_columns [k].size () * m_e_matrix.m_rows [h].size ();
2004
1988
}
2005
1989
2006
1990
std::tuple<mpq, unsigned , int , unsigned > find_minimal_abs_coeff (unsigned ei) {
@@ -2021,7 +2005,7 @@ namespace lp {
2021
2005
}
2022
2006
}
2023
2007
2024
- return std::make_tuple (ahk, k, k_sign, find_markovich_number (k, ei));
2008
+ return std::make_tuple (ahk, k, k_sign, markovich_number (k, ei));
2025
2009
}
2026
2010
2027
2011
0 commit comments