@@ -231,7 +231,8 @@ VariableRelationships ComputeVariableRelationships(const CpModelProto& model) {
231231 }
232232 var_is_secondary.Set (v);
233233 result.secondary_variables .push_back (v);
234- result.dependency_resolution_constraint_index .push_back (c);
234+ result.dependency_resolution_constraint .push_back (model.constraints (c));
235+ result.redundant_constraint_indices .push_back (c);
235236 break ;
236237 }
237238
@@ -295,14 +296,17 @@ VariableRelationships ComputeVariableRelationships(const CpModelProto& model) {
295296 var_is_secondary.Set (single_deducible_var);
296297 update_constraints_after_var_is_decided (single_deducible_var);
297298 result.secondary_variables .push_back (single_deducible_var);
298- result.dependency_resolution_constraint_index .push_back (c);
299+ result.dependency_resolution_constraint .push_back (model.constraints (c));
300+ result.redundant_constraint_indices .push_back (c);
299301 }
300302 }
301303
302304 for (int i = 0 ; i < result.secondary_variables .size (); ++i) {
303305 const int var = result.secondary_variables [i];
304- const int c = result.dependency_resolution_constraint_index [i];
305- const ConstraintData& data = constraint_data[c];
306+ ConstraintData data;
307+ const ConstraintProto& ct = result.dependency_resolution_constraint [i];
308+ GetRelationshipForConstraint (ct, &data.deducible_vars , &data.input_vars ,
309+ &data.preferred_to_deduce );
306310 for (const int v : data.input_vars ) {
307311 if (var_is_secondary.IsSet (v)) {
308312 result.variable_dependencies .push_back ({var, v});
@@ -326,9 +330,8 @@ bool ComputeAllVariablesFromPrimaryVariables(
326330 }
327331 for (int i = 0 ; i < relationships.secondary_variables .size (); ++i) {
328332 const int var = relationships.secondary_variables [i];
329- const int constraint_index =
330- relationships.dependency_resolution_constraint_index [i];
331- const ConstraintProto& ct = model.constraints (constraint_index);
333+ const ConstraintProto& ct =
334+ relationships.dependency_resolution_constraint [i];
332335 switch (ct.constraint_case ()) {
333336 case ConstraintProto::kLinear : {
334337 const LinearConstraintProto& linear = ct.linear ();
0 commit comments