Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
trivial API extension of the maxmin solver
authoralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 22 Jul 2005 18:18:04 +0000 (18:18 +0000)
committeralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 22 Jul 2005 18:18:04 +0000 (18:18 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@1555 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/include/surf/maxmin.h
src/surf/maxmin.c

index eb55de9..82ee074 100644 (file)
@@ -30,6 +30,8 @@ double lmm_variable_getvalue(lmm_variable_t var);
 
 void lmm_expand(lmm_system_t sys, lmm_constraint_t cnst,
                lmm_variable_t var, double value);
+void lmm_expand_add(lmm_system_t sys, lmm_constraint_t cnst,
+                   lmm_variable_t var, double value);
 
 lmm_constraint_t lmm_get_cnst_from_var(lmm_system_t sys,
                                       lmm_variable_t var, int num);
index fc590cc..081a8eb 100644 (file)
@@ -177,6 +177,19 @@ void lmm_expand(lmm_system_t sys, lmm_constraint_t cnst,
   make_constraint_active(sys, cnst);
 }
 
+void lmm_expand_add(lmm_system_t sys, lmm_constraint_t cnst,
+                   lmm_variable_t var, double value)
+{
+  int i ; 
+  sys->modified = 1;
+
+  for(i=0; i< var->cnsts_number ; i++)
+    if(var->cnsts[i].constraint == cnst) break;
+  
+  if(i<var->cnsts_number) var->cnsts[i].value +=value;
+  else lmm_expand(sys,cnst,var,value);
+}
+
 lmm_constraint_t lmm_get_cnst_from_var(lmm_system_t sys,
                                       lmm_variable_t var, int num)
 {