@@ -260,27 +260,29 @@ auto set_features_for_all_rows(xmatrix& out, scip::Model& model, bool const upda
260
260
auto const n_lps = static_cast <value_type>(SCIPgetNLPs (scip));
261
261
value_type const obj_norm = obj_l2_norm (scip);
262
262
263
- auto const rows = model.lp_rows ();
264
- auto const n_rows = rows.size ();
265
- for (std::size_t row_idx = 0 ; row_idx < n_rows; ++row_idx) {
266
- auto * const row = rows[row_idx];
263
+ auto feat_row_idx = std::size_t {0 };
264
+ for (auto * const row : model.lp_rows ()) {
267
265
auto const row_norm = static_cast <value_type>(row_l2_norm (row));
268
- auto features = xt::row (out, static_cast <std::ptrdiff_t >(row_idx));
269
266
270
267
// Rows are counted once per rhs and once per lhs
271
268
if (scip::get_unshifted_lhs (scip, row).has_value ()) {
269
+ auto features = xt::row (out, static_cast <std::ptrdiff_t >(feat_row_idx));
272
270
if (update_static) {
273
271
set_static_features_for_lhs_row (features, scip, row, row_norm);
274
272
}
275
273
set_dynamic_features_for_lhs_row (features, scip, row, row_norm, obj_norm, n_lps);
274
+ feat_row_idx++;
276
275
}
277
276
if (scip::get_unshifted_rhs (scip, row).has_value ()) {
277
+ auto features = xt::row (out, static_cast <std::ptrdiff_t >(feat_row_idx));
278
278
if (update_static) {
279
279
set_static_features_for_rhs_row (features, scip, row, row_norm);
280
280
}
281
281
set_dynamic_features_for_rhs_row (features, scip, row, row_norm, obj_norm, n_lps);
282
+ feat_row_idx++;
282
283
}
283
284
}
285
+ assert (feat_row_idx == n_ineq_rows (model));
284
286
}
285
287
286
288
/* ***************************************
0 commit comments