//for each link with capacity cnsts[i] that uses flow of variable var do
for(i=0; i<var->cnsts_number; i++)
- mu_partial += (var->cnsts[i].constraint)->lambda + mu;
+ mu_partial += (var->cnsts[i].constraint)->lambda;
- mu_partial = (-1.0/mu_partial) + var->bound;
+ mu_partial = ( -1.0 / (mu_partial + mu) ) + var->bound;
return mu_partial;
}
}
+
+
+
+
+
+
double mu;
double new_mu;
double value;
+ double df; /* Total delay of flow */
void *id;
int index;
+ double (* func_f) (lmm_variable var, double x); /* f */
+ double (* func_fp) (lmm_variable var, double x); /* f' */
+ double (* func_fpi) (lmm_variable var, double x); /* (f')^{-1} */
+ double (* func_fpip) (lmm_variable var, double x); /* ((f')^{-1})' */
+ double func_fi;
} s_lmm_variable_t;
typedef struct lmm_system {
"Logging specific to SURF (kernel)");
int use_sdp_solver=0;
+int use_lagrange_solver=0;
/* Additional declarations for Windows potability. */
if(!use_sdp_solver)
lmm_solve(sys);
- else {
+ else if(!use_lagrange_solver){
#ifdef HAVE_SDP
sdp_solve(sys);
#else
xbt_assert0(0, "No CSDP found! You cannot use this model!");
#endif
+ }else{
+ lagrange_solve(sys);
}
xbt_swag_foreach(action, running_actions) {
/* #define priv2pub(r) ((void *) ((char *)(r) +(sizeof(struct surf_resource_private_part)))) */
extern int use_sdp_solver;
+extern int use_lagrange_solver;
double generic_maxmin_share_resources(xbt_swag_t running_actions,
size_t offset);