From 4a1e91112c3e611c25a4093bdf669e373ac79080 Mon Sep 17 00:00:00 2001 From: velho Date: Thu, 19 Apr 2007 11:26:41 +0000 Subject: [PATCH] Corrected some bugs. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@3435 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/surf/lagrangedico.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/surf/lagrangedico.c b/src/surf/lagrangedico.c index 1d599fa510..e4ab72c393 100644 --- a/src/surf/lagrangedico.c +++ b/src/surf/lagrangedico.c @@ -62,8 +62,7 @@ void lagrange_dicotomi_solve(lmm_system_t sys) int iteration=0; double tmp=0; int i; - FILE *gnuplot_file=NULL; - + DEBUG0("Iterative method configuration snapshot =====>"); DEBUG1("#### Maximum number of iterations : %d", max_iterations); @@ -205,14 +204,11 @@ void lagrange_dicotomi_solve(lmm_system_t sys) WARN0("The impossible happened, partial_diff(min) >0 && partial_diff(max) < 0"); } } - - var1->new_mu = max; - cnst1->new_lambda = cnst1->lambda; - + if(cnst1->new_lambda < 0){ cnst1->new_lambda = 0; - } + } } @@ -294,10 +290,6 @@ void lagrange_dicotomi_solve(lmm_system_t sys) } - if(XBT_LOG_ISENABLED(surf_writelambda, xbt_log_priority_debug)) { - fclose(gnuplot_file); - } - } @@ -341,8 +333,12 @@ double partial_diff_lambda(double lambda, lmm_constraint_t cnst1){ if(var1->bound > 0) tmp += var1->mu; + tmp = tmp - cnst1->lambda + lambda; + + //un peux du bricolage pour evite la catastrophe if(tmp==0) lambda_partial = 10e-8; - lambda_partial += (-1.0 / (tmp - 3*cnst1->lambda + 3*cnst1->lambda)); + + lambda_partial += (-1.0 /tmp); } return lambda_partial; -- 2.20.1