* Default functions associated to the chosen protocol. When
* using the lagrangian approach.
*/
-double (* func_f_def ) (lmm_variable_t , double);
-double (* func_fp_def ) (lmm_variable_t , double);
double (* func_fpi_def ) (lmm_variable_t , double);
-double (* func_fpip_def) (lmm_variable_t , double);
+void lmm_set_default_protocol_functions(double (* func_fpi) (lmm_variable_t var, double x));
-void lmm_set_default_protocol_functions(double (* func_f) (lmm_variable_t var, double x),
- double (* func_fp) (lmm_variable_t var, double x),
- double (* func_fpi) (lmm_variable_t var, double x),
- double (* func_fpip) (lmm_variable_t var, double x));
-
-double func_reno_f(lmm_variable_t var, double x);
-double func_reno_fp(lmm_variable_t var, double x);
double func_reno_fpi(lmm_variable_t var, double x);
-double func_reno_fpip(lmm_variable_t var, double x);
-double func_vegas_f(lmm_variable_t var, double x);
-double func_vegas_fp(lmm_variable_t var, double x);
double func_vegas_fpi(lmm_variable_t var, double x);
-double func_vegas_fpip(lmm_variable_t var, double x);
#endif /* _SURF_MAXMIN_H */
* Set default functions to the ones passed as parameters. This is a polimorfism in C pure, enjoy the roots of programming.
*
*/
-void lmm_set_default_protocol_functions(double (* func_f) (lmm_variable_t var, double x),
- double (* func_fp) (lmm_variable_t var, double x),
- double (* func_fpi) (lmm_variable_t var, double x),
- double (* func_fpip) (lmm_variable_t var, double x))
-
-{
- func_f_def = func_f;
- func_fp_def = func_fp;
+void lmm_set_default_protocol_functions(double (* func_fpi) (lmm_variable_t var, double x))
+{
func_fpi_def = func_fpi;
- func_fpip_def = func_fpip;
}
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} */
- double (* func_fpip) (struct lmm_variable *var, double x); /* ((f')^{-1})' */
/* \end{For Lagrange only} */
} s_lmm_variable_t;
if(method==LAGRANGE_VEGAS){
//set default functions for TCP Vegas
- lmm_set_default_protocol_functions(func_vegas_f, func_vegas_fp, func_vegas_fpi, func_vegas_fpip);
+ lmm_set_default_protocol_function(func_vegas_fpi);
}else if(method==LAGRANGE_RENO){
//set default functions for TCP Reno
- lmm_set_default_protocol_functions(func_reno_f, func_reno_fp, func_reno_fpi, func_reno_fpip);
+ lmm_set_default_protocol_function(func_reno_fpi);
}
if(method==LAGRANGE_VEGAS){
//set default functions for TCP Vegas
- lmm_set_default_protocol_functions(func_vegas_f, func_vegas_fp, func_vegas_fpi, func_vegas_fpip);
+ lmm_set_default_protocol_function(func_vegas_fpi);
}else if(method==LAGRANGE_RENO){
//set default functions for TCP Reno
- lmm_set_default_protocol_functions(func_reno_f, func_reno_fp, func_reno_fpi, func_reno_fpip);
+ lmm_set_default_protocol_function(func_reno_fpi);
}
Sys = lmm_system_new();
if(method==LAGRANGE_VEGAS){
//set default functions for TCP Vegas
- lmm_set_default_protocol_functions(func_vegas_f, func_vegas_fp, func_vegas_fpi, func_vegas_fpip);
+ lmm_set_default_protocol_function(func_vegas_fpi);
}else if(method==LAGRANGE_RENO){
//set default functions for TCP Reno
- lmm_set_default_protocol_functions(func_reno_f, func_reno_fp, func_reno_fpi, func_reno_fpip);
+ lmm_set_default_protocol_function(func_reno_fpi);
}
Sys = lmm_system_new();