Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Added a function and the bound to the variable structure.
[simgrid.git] / src / surf / maxmin.c
index 3177a75fe191fe153823adf3e498fdcb3e7b6d12..0c524b8c2194fc55db987229ac03537b49250760 100644 (file)
@@ -11,6 +11,7 @@
 #include "xbt/mallocator.h"
 #include "maxmin_private.h"
 #include <stdlib.h>
+#include <stdio.h> /* sprintf */
 #include <math.h>
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_maxmin, surf,
                                "Logging specific to SURF (maxmin)");
@@ -202,6 +203,11 @@ double lmm_variable_getvalue(lmm_variable_t var)
   return (var->value);
 }
 
+double lmm_variable_getbound(lmm_variable_t var)
+{
+  return (var->bound);
+}
+
 void lmm_expand(lmm_system_t sys, lmm_constraint_t cnst,
                lmm_variable_t var, double value)
 {
@@ -273,13 +279,16 @@ int lmm_get_number_of_cnst_from_var(lmm_system_t sys, lmm_variable_t var)
 
 lmm_variable_t lmm_get_var_from_cnst(lmm_system_t sys,
                                     lmm_constraint_t cnst,
-                                    lmm_variable_t * var)
+                                    lmm_element_t * elem)
 {
-  if (!(*var))
-    xbt_swag_getFirst(&(cnst->element_set));
+  if (!(*elem))
+    *elem = xbt_swag_getFirst(&(cnst->element_set));
   else
-    *var = xbt_swag_getNext(*var, cnst->element_set.offset);
-  return *var;
+    *elem = xbt_swag_getNext(*elem, cnst->element_set.offset);
+  if(*elem)
+    return (*elem)->variable;
+  else 
+    return NULL;
 }
 
 void *lmm_constraint_id(lmm_constraint_t cnst)