Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Some values were close to 0 instead of equal to 0, which caused some bad behaviors...
[simgrid.git] / src / surf / maxmin.c
index 0c338e3..b266a3d 100644 (file)
@@ -86,7 +86,6 @@ static void lmm_var_free(lmm_system_t sys, lmm_variable_t var)
 {
 
   lmm_variable_disable(sys, var);
-  memset(var->cnsts,0,var->cnsts_size*sizeof(s_lmm_element_t));
   free(var->cnsts);
   xbt_mallocator_release(sys->variable_mallocator, var);
 }
@@ -132,7 +131,7 @@ void lmm_constraint_free(lmm_system_t sys, lmm_constraint_t cnst)
 }
 
 static void* lmm_variable_mallocator_new_f(void) {
-  return xbt_new0(s_lmm_variable_t, 1);
+  return xbt_new(s_lmm_variable_t, 1);
 }
 
 static void lmm_variable_mallocator_free_f(void *var) {
@@ -466,8 +465,8 @@ void lmm_solve(lmm_system_t sys)
        elem = &var->cnsts[i];
        cnst = elem->constraint;
        if(cnst->shared) {
-         cnst->remaining -= elem->value * var->value;
-         cnst->usage -= elem->value / var->weight;
+         double_update(&(cnst->remaining), elem->value * var->value);
+         double_update(&(cnst->usage), elem->value / var->weight);
        }
        make_elem_inactive(elem);
       }