Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Making lmm_print public.
[simgrid.git] / src / surf / maxmin.c
index e675cca..9a01021 100644 (file)
@@ -324,7 +324,7 @@ static void saturated_variable_set_update(lmm_system_t sys)
   }
 }
 
-static void lmm_print(lmm_system_t sys)
+void lmm_print(lmm_system_t sys)
 {
   lmm_constraint_t cnst = NULL;
   lmm_element_t elem = NULL;
@@ -362,7 +362,7 @@ static void lmm_print(lmm_system_t sys)
     strcat(trace_buf, print_buf);
     xbt_swag_foreach(elem, elem_list) {
       sprintf(print_buf,"%f.'%p'(%f) + ",elem->value, 
-             elem->variable,elem->variable->weight);
+             elem->variable,elem->variable->value);
       trace_buf = xbt_realloc(trace_buf,strlen(trace_buf)+strlen(print_buf)+1);
       strcat(trace_buf, print_buf);
       sum += elem->value * elem->variable->value;
@@ -409,9 +409,9 @@ void lmm_solve(lmm_system_t sys)
     var->value = 0.0;
   }
 
-
-  /* Compute Usage and store the variables that reach the maximum */
-
+  /* 
+   * Compute Usage and store the variables that reach the maximum.
+   */
   cnst_list = &(sys->active_constraint_set);
   DEBUG1("Active constraints : %d", xbt_swag_size(cnst_list));
   xbt_swag_foreach(cnst, cnst_list) {
@@ -465,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);
       }