Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
LMM: add a function to see how many variables are active on a constraint
authorMartin Quinson <martin.quinson@loria.fr>
Thu, 15 Jun 2017 15:30:59 +0000 (17:30 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Thu, 15 Jun 2017 15:30:59 +0000 (17:30 +0200)
src/include/surf/maxmin.h
src/surf/maxmin.cpp

index 7365bfa..df7571f 100644 (file)
@@ -203,6 +203,8 @@ XBT_PUBLIC(void) lmm_constraint_free(lmm_system_t sys, lmm_constraint_t cnst);
  */
 XBT_PUBLIC(double) lmm_constraint_get_usage(lmm_constraint_t cnst);
 
+XBT_PUBLIC(int) lmm_constraint_get_variable_amount(lmm_constraint_t cnst);
+
 /**
  * @brief Sets the concurrency limit for this constraint
  * @param cnst A constraint
index 3d9da37..5876ad7 100644 (file)
@@ -1245,6 +1245,18 @@ double lmm_constraint_get_usage(lmm_constraint_t cnst) {
    }
   return usage;
 }
+int lmm_constraint_get_variable_amount(lmm_constraint_t cnst) {
+  int usage = 0;
+  xbt_swag_t elem_list = &(cnst->enabled_element_set);
+  void *_elem;
+
+  xbt_swag_foreach(_elem, elem_list) {
+    lmm_element_t elem = (lmm_element_t)_elem;
+    if (elem->value > 0)
+      usage++;
+  }
+ return usage;
+}
 
 void lmm_check_concurrency(lmm_system_t sys){
   //These checks are very expensive, so do them only if we want to debug SURF LMM