Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add Dragonfly topology. Use XC30's Cray description as a basis
[simgrid.git] / src / surf / lagrange.cpp
index ad8eabc..1efd8ac 100644 (file)
@@ -44,22 +44,21 @@ static int __check_feasible(xbt_swag_t cnst_list, xbt_swag_t var_list,
                             int warn)
 {
   void *_cnst, *_elem, *_var;
-  xbt_swag_t elem_list = NULL;
-  lmm_element_t elem = NULL;
-  lmm_constraint_t cnst = NULL;
-  lmm_variable_t var = NULL;
+  xbt_swag_t elem_list = nullptr;
+  lmm_element_t elem = nullptr;
+  lmm_constraint_t cnst = nullptr;
+  lmm_variable_t var = nullptr;
 
   double tmp;
 
   xbt_swag_foreach(_cnst, cnst_list) {
-       cnst = (lmm_constraint_t)_cnst;
+  cnst = (lmm_constraint_t)_cnst;
     tmp = 0;
-    elem_list = &(cnst->element_set);
+    elem_list = &(cnst->enabled_element_set);
     xbt_swag_foreach(_elem, elem_list) {
       elem = (lmm_element_t)_elem;
       var = elem->variable;
-      if (var->weight <= 0)
-        continue;
+      xbt_assert(var->weight > 0);
       tmp += var->value;
     }
 
@@ -76,7 +75,7 @@ static int __check_feasible(xbt_swag_t cnst_list, xbt_swag_t var_list,
   }
 
   xbt_swag_foreach(_var, var_list) {
-       var = (lmm_variable_t)_var;
+  var = (lmm_variable_t)_var;
     if (!var->weight)
       break;
     if (var->bound < 0)
@@ -129,13 +128,13 @@ static double new_mu(lmm_variable_t var)
 static double dual_objective(xbt_swag_t var_list, xbt_swag_t cnst_list)
 {
   void *_cnst, *_var;
-  lmm_constraint_t cnst = NULL;
-  lmm_variable_t var = NULL;
+  lmm_constraint_t cnst = nullptr;
+  lmm_variable_t var = nullptr;
 
   double obj = 0.0;
 
   xbt_swag_foreach(_var, var_list) {
-       var = (lmm_variable_t)_var;
+  var = (lmm_variable_t)_var;
     double sigma_i = 0.0;
     int j;
 
@@ -179,13 +178,13 @@ void lagrange_solve(lmm_system_t sys)
    * Variables to manipulate the data structure proposed to model the maxmin
    * fairness. See docummentation for more details.
    */
-  xbt_swag_t cnst_list = NULL;
+  xbt_swag_t cnst_list = nullptr;
   void *_cnst;
-  lmm_constraint_t cnst = NULL;
+  lmm_constraint_t cnst = nullptr;
 
-  xbt_swag_t var_list = NULL;
+  xbt_swag_t var_list = nullptr;
   void *_var;
-  lmm_variable_t var = NULL;
+  lmm_variable_t var = nullptr;
 
   /*
    * Auxiliary variables.
@@ -215,7 +214,7 @@ void lagrange_solve(lmm_system_t sys)
    */
   cnst_list = &(sys->active_constraint_set);
   xbt_swag_foreach(_cnst, cnst_list) {
-       cnst = (lmm_constraint_t)_cnst;
+  cnst = (lmm_constraint_t)_cnst;
     cnst->lambda = 1.0;
     cnst->new_lambda = 2.0;
     XBT_DEBUG("#### cnst(%p)->lambda :  %e", cnst, cnst->lambda);
@@ -228,7 +227,7 @@ void lagrange_solve(lmm_system_t sys)
   var_list = &(sys->variable_set);
   i = 0;
   xbt_swag_foreach(_var, var_list) {
-       var = (lmm_variable_t)_var;
+  var = (lmm_variable_t)_var;
     if (!var->weight)
       var->value = 0.0;
     else {
@@ -493,24 +492,22 @@ static double partial_diff_lambda(double lambda, void *param_cnst)
 
   int j;
   void *_elem;
-  xbt_swag_t elem_list = NULL;
-  lmm_element_t elem = NULL;
-  lmm_variable_t var = NULL;
+  xbt_swag_t elem_list = nullptr;
+  lmm_element_t elem = nullptr;
+  lmm_variable_t var = nullptr;
   lmm_constraint_t cnst = (lmm_constraint_t) param_cnst;
   double diff = 0.0;
   double sigma_i = 0.0;
 
   XBT_IN();
-  elem_list = &(cnst->element_set);
+  elem_list = &(cnst->enabled_element_set);
 
   XBT_CDEBUG(surf_lagrange_dichotomy, "Computing diff of cnst (%p)", cnst);
 
   xbt_swag_foreach(_elem, elem_list) {
-       elem = (lmm_element_t)_elem;
+  elem = (lmm_element_t)_elem;
     var = elem->variable;
-    if (var->weight <= 0)
-      continue;
-
+    xbt_assert(var->weight > 0);
     XBT_CDEBUG(surf_lagrange_dichotomy, "Computing sigma_i for var (%p)",
             var);
     // Initialize the summation variable