Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
func_f and func_fp need to be provided. This is weird. I thought I
authoralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 26 Jul 2007 19:25:04 +0000 (19:25 +0000)
committeralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 26 Jul 2007 19:25:04 +0000 (19:25 +0000)
already had commited these files...

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@3897 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/surf/maxmin.c
src/surf/maxmin_private.h
src/surf/workstation_KCCFLN05.c

index 4be448e..24405cc 100644 (file)
@@ -176,6 +176,8 @@ lmm_variable_t lmm_variable_new(lmm_system_t sys, void *id,
   var->value = 0.0;
   var->df    = 0.0;
 
   var->value = 0.0;
   var->df    = 0.0;
 
+  var->func_f  = func_f_def;
+  var->func_fp  = func_fp_def;
   var->func_fpi  = func_fpi_def;
 
   if(weight) xbt_swag_insert_at_head(var,&(sys->variable_set));
   var->func_fpi  = func_fpi_def;
 
   if(weight) xbt_swag_insert_at_head(var,&(sys->variable_set));
index 947e1c8..1798472 100644 (file)
@@ -58,6 +58,8 @@ typedef struct lmm_variable {
   double mu;
   double new_mu;
   double df; /* Total delay of flow */
   double mu;
   double new_mu;
   double df; /* Total delay of flow */
+  double (* func_f)  (struct lmm_variable *var, double x);  /* (f)    */
+  double (* func_fp)  (struct lmm_variable *var, double x);  /* (f')    */
   double (* func_fpi)  (struct lmm_variable *var, double x);  /* (f')^{-1}    */
   /* \end{For Lagrange only} */
 } s_lmm_variable_t;
   double (* func_fpi)  (struct lmm_variable *var, double x);  /* (f')^{-1}    */
   /* \end{For Lagrange only} */
 } s_lmm_variable_t;
@@ -91,4 +93,8 @@ static void lmm_cnst_free(lmm_system_t sys, lmm_constraint_t cnst);
 
 void lmm_print(lmm_system_t sys);
 
 
 void lmm_print(lmm_system_t sys);
 
+extern double (* func_f_def )  (lmm_variable_t , double);
+extern double (* func_fp_def ) (lmm_variable_t , double);
+extern double (* func_fpi_def )(lmm_variable_t , double);
+
 #endif                         /* _SURF_MAXMIN_PRIVATE_H */
 #endif                         /* _SURF_MAXMIN_PRIVATE_H */
index d06e946..6a7f8d2 100644 (file)
@@ -1154,7 +1154,7 @@ void surf_workstation_resource_init_KCCFLN05_Vegas(const char *filename)
   resource_init_internal();
   parse_file(filename);
 
   resource_init_internal();
   parse_file(filename);
 
-  lmm_set_default_protocol_function(func_vegas_fpi);
+  lmm_set_default_protocol_function(func_vegas_f, func_vegas_fpi);
 
   surf_workstation_resource->common_public->name = "Workstation KCCFLN05 (Vegas)";
   use_lagrange_solver=1;
 
   surf_workstation_resource->common_public->name = "Workstation KCCFLN05 (Vegas)";
   use_lagrange_solver=1;
@@ -1168,7 +1168,7 @@ void surf_workstation_resource_init_KCCFLN05_Reno(const char *filename)
   resource_init_internal();
   parse_file(filename);
 
   resource_init_internal();
   parse_file(filename);
 
-  lmm_set_default_protocol_function(func_reno_fpi);
+  lmm_set_default_protocol_function(func_reno_f, func_reno_fpi);
 
   surf_workstation_resource->common_public->name = "Workstation KCCFLN05 (Reno)";
   use_lagrange_solver=1;
 
   surf_workstation_resource->common_public->name = "Workstation KCCFLN05 (Reno)";
   use_lagrange_solver=1;