#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;
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);
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);
_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",