From: pini Date: Mon, 6 Dec 2010 13:54:30 +0000 (+0000) Subject: Allow to configure precision in the maxmin systems. X-Git-Tag: v3.6_beta2~911 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/6bd50a954d420712f910d3efe8f8c543c77aa14f Allow to configure precision in the maxmin systems. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9012 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/src/include/surf/maxmin.h b/src/include/surf/maxmin.h index a522198151..2a7e6dd1b7 100644 --- a/src/include/surf/maxmin.h +++ b/src/include/surf/maxmin.h @@ -12,7 +12,8 @@ #include "xbt/misc.h" #include "surf/datatypes.h" -#define MAXMIN_PRECISION 0.00001 +extern double sg_maxmin_precision; +#define MAXMIN_PRECISION sg_maxmin_precision static XBT_INLINE void double_update(double *variable, double value) { *variable -= value; diff --git a/src/surf/maxmin.c b/src/surf/maxmin.c index ad12c4095e..e7d3e181f3 100644 --- a/src/surf/maxmin.c +++ b/src/surf/maxmin.c @@ -15,6 +15,8 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_maxmin, surf, "Logging specific to SURF (maxmin)"); +double sg_maxmin_precision = 0.00001; + static void *lmm_variable_mallocator_new_f(void); static void lmm_variable_mallocator_free_f(void *var); static void lmm_variable_mallocator_reset_f(void *var); diff --git a/src/surf/surf_config.c b/src/surf/surf_config.c index 0520467478..f43274849d 100644 --- a/src/surf/surf_config.c +++ b/src/surf/surf_config.c @@ -139,6 +139,11 @@ static void _surf_cfg_cb__tcp_gamma(const char *name, int pos) sg_tcp_gamma = xbt_cfg_get_double(_surf_cfg_set, name); } +static void _surf_cfg_cb__maxmin_precision(const char* name, int pos) +{ + sg_maxmin_precision = xbt_cfg_get_double(_surf_cfg_set, name); +} + static void _surf_cfg_cb__latency_factor(const char *name, int pos) { sg_latency_factor = xbt_cfg_get_double(_surf_cfg_set, name); @@ -274,6 +279,11 @@ void surf_config_init(int *argc, char **argv) _surf_cfg_cb__tcp_gamma, NULL); xbt_cfg_set_double(_surf_cfg_set, "TCP_gamma", 20000.0); + xbt_cfg_register(&_surf_cfg_set, "maxmin/precision", + "Minimum retained action value when updating simulation", + xbt_cfgelm_double, NULL, 1, 1, _surf_cfg_cb__maxmin_precision, NULL); + xbt_cfg_set_double(_surf_cfg_set, "maxmin/precision", 0.00001); + /* The parameters of network models */ double_default_value = 1.0; xbt_cfg_register(&_surf_cfg_set, "network/latency_factor",