+void System::update_modified_set_from_variable(const Variable* var)
+{
+ /* nothing to update in these cases:
+ * - selective update not active, all variables are active
+ * - variable doesn't use any constraint
+ * - variable is disabled (sharing penalty <= 0): we iterate only through the enabled_variables in
+ * update_modified_set_rec */
+ if (not selective_update_active || var->cnsts_.empty() || var->sharing_penalty_ <= 0)
+ return;
+
+ /* Normally, if the conditions above are true, specially variable is enabled, we can call
+ * modified_set over the first contraint only, since the recursion in update_modified_set_rec
+ * will iterate over the other constraints of this variable */
+ update_modified_set(var->cnsts_[0].constraint);
+}
+