for (i = 0; i < var->cnsts_number; i++) {
elem = &var->cnsts[i];
xbt_swag_remove(elem, &(elem->constraint->element_set));
+ xbt_swag_remove(elem, &(elem->constraint->active_element_set));
if (!xbt_swag_size(&(elem->constraint->element_set)))
make_constraint_inactive(sys, elem->constraint);
}
{
lmm_variable_disable(sys, var);
-
+ memset(var->cnsts,0,var->cnsts_size*sizeof(s_lmm_element_t));
xbt_free(var->cnsts);
xbt_free(var);
}
if(elem->variable->weight <=0) break;
if ((elem->value > 0)) {
cnst->usage += elem->value / elem->variable->weight;
- insert_active_elem_in_constraint(elem);
+ make_elem_active(elem);
}
}
cnst = elem->constraint;
cnst->remaining -= elem->value * var->value;
cnst->usage -= elem->value / var->weight;
- remove_active_elem_in_constraint(elem);
+ make_elem_inactive(elem);
}
xbt_swag_remove(var, var_list);
}
lmm_variable_t variable;
double value;
} s_lmm_element_t, *lmm_element_t;
-#define insert_active_elem_in_constraint(elem) xbt_swag_insert_at_head(elem,&(elem->constraint->active_element_set))
-#define remove_active_elem_in_constraint(elem) xbt_swag_remove(elem,&(elem->constraint->active_element_set))
+#define make_elem_active(elem) xbt_swag_insert_at_head(elem,&(elem->constraint->active_element_set))
+#define make_elem_inactive(elem) xbt_swag_remove(elem,&(elem->constraint->active_element_set))
typedef struct lmm_constraint {
/* hookup to system */