gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r33274 - gnunet/src/ats


From: gnunet
Subject: [GNUnet-SVN] r33274 - gnunet/src/ats
Date: Wed, 14 May 2014 10:17:46 +0200

Author: wachs
Date: 2014-05-14 10:17:46 +0200 (Wed, 14 May 2014)
New Revision: 33274

Modified:
   gnunet/src/ats/perf_ats_solver.conf
   gnunet/src/ats/plugin_ats_mlp.c
Log:
read coefficients with cfg functions


Modified: gnunet/src/ats/perf_ats_solver.conf
===================================================================
--- gnunet/src/ats/perf_ats_solver.conf 2014-05-14 08:09:42 UTC (rev 33273)
+++ gnunet/src/ats/perf_ats_solver.conf 2014-05-14 08:17:46 UTC (rev 33274)
@@ -35,10 +35,10 @@
 
 # Maximum number of iterations for a solution process
 # MLP_MAX_ITERATIONS = 1024
-# Tolerated MIP Gap [0.0 .. 1.0]
-MLP_MAX_MIP_GAP = 0,0025
-# Tolerated LP/MIP Gap [0.0 .. 1.0]
-MLP_MAX_LP_MIP_GAP = 0,025
+# Tolerated MIP Gap [0.0 .. 1.0], default 0.025
+MLP_MAX_MIP_GAP = 0.025
+# Tolerated LP/MIP Gap [0.0 .. 1.0], default 0.025
+MLP_MAX_LP_MIP_GAP = 0.025
 
 # MLP_COEFFICIENT_D = 1.0
 # MLP_COEFFICIENT_U = 1.0

Modified: gnunet/src/ats/plugin_ats_mlp.c
===================================================================
--- gnunet/src/ats/plugin_ats_mlp.c     2014-05-14 08:09:42 UTC (rev 33273)
+++ gnunet/src/ats/plugin_ats_mlp.c     2014-05-14 08:17:46 UTC (rev 33274)
@@ -2163,16 +2163,13 @@
   struct GNUNET_ATS_PluginEnvironment *env = cls;
   struct GAS_MLP_Handle * mlp = GNUNET_new (struct GAS_MLP_Handle);
 
-  double D;
-  double R;
-  double U;
+  float f_tmp;
   unsigned long long tmp;
   unsigned int b_min;
   unsigned int n_min;
   int c;
   int c2;
   int found;
-  char *tmp_str;
   char *outputformat;
 
   struct GNUNET_TIME_Relative max_duration;
@@ -2334,35 +2331,37 @@
   mlp->pv.BIG_M = (double) BIG_M_VALUE;
 
   mlp->pv.mip_gap = (double) 0.0;
-  if (GNUNET_SYSERR != GNUNET_CONFIGURATION_get_value_string (env->cfg, "ats",
-      "MLP_MAX_MIP_GAP", &tmp_str))
+  if (GNUNET_SYSERR != GNUNET_CONFIGURATION_get_value_float (env->cfg, "ats",
+      "MLP_MAX_MIP_GAP", &f_tmp))
   {
-    /* Dangerous due to localized separator , or . */
-    mlp->pv.mip_gap = strtod (tmp_str, NULL);
-    if ( (mlp->pv.mip_gap < 0.0) && (mlp->pv.mip_gap > 1.0) )
+    if ((f_tmp < 0.0) || (f_tmp > 1.0))
     {
-        LOG (GNUNET_ERROR_TYPE_INFO, "Invalid MIP gap configuration %u \n",
-            tmp);
+      LOG (GNUNET_ERROR_TYPE_ERROR, _("Invalid %s configuration %f \n"),
+          "MIP gap", f_tmp);
     }
     else
-        LOG (GNUNET_ERROR_TYPE_WARNING, "Using MIP gap of %.3f\n",
-            mlp->pv.mip_gap);
+    {
+      mlp->pv.mip_gap = f_tmp;
+      LOG (GNUNET_ERROR_TYPE_INFO, "Using %s of %.3f\n",
+          "MIP gap", mlp->pv.mip_gap);
+    }
   }
 
   mlp->pv.lp_mip_gap = (double) 0.0;
-  if (GNUNET_SYSERR != GNUNET_CONFIGURATION_get_value_string (env->cfg, "ats",
-      "MLP_MAX_LP_MIP_GAP", &tmp_str))
+  if (GNUNET_SYSERR != GNUNET_CONFIGURATION_get_value_float (env->cfg, "ats",
+      "MLP_MAX_LP_MIP_GAP", &f_tmp))
   {
-    /* Dangerous due to localized separator , or . */
-    mlp->pv.lp_mip_gap = strtod (tmp_str, NULL);
-    if ( (mlp->pv.lp_mip_gap < 0.0) && (mlp->pv.lp_mip_gap > 1.0) )
+    if ((f_tmp < 0.0) || (f_tmp > 1.0))
     {
-        LOG (GNUNET_ERROR_TYPE_INFO, "Invalid LP/MIP gap configuration %u \n",
-            tmp);
+      LOG (GNUNET_ERROR_TYPE_ERROR, _("Invalid %s configuration %f \n"),
+          "LP/MIP", f_tmp);
     }
     else
-        LOG (GNUNET_ERROR_TYPE_WARNING, "Using LP/MIP gap of %.3f\n",
-            mlp->pv.lp_mip_gap);
+    {
+      mlp->pv.lp_mip_gap = f_tmp;
+      LOG (GNUNET_ERROR_TYPE_INFO, "Using %s gap of %.3f\n",
+          "LP/MIP", mlp->pv.lp_mip_gap);
+    }
   }
 
   /* Get timeout for iterations */
@@ -2380,25 +2379,59 @@
   }
 
   /* Get diversity coefficient from configuration */
-  if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (env->cfg,
-      "ats", "MLP_COEFFICIENT_D", &tmp))
-    D = (double) tmp / 100;
-  else
-    D = DEFAULT_D;
+  mlp->pv.co_D = DEFAULT_D;
+  if (GNUNET_SYSERR != GNUNET_CONFIGURATION_get_value_float (env->cfg, "ats",
+      "MLP_COEFFICIENT_D", &f_tmp))
+  {
+    if ((f_tmp < 0.0))
+    {
+      LOG (GNUNET_ERROR_TYPE_ERROR, _("Invalid %s configuration %f \n"),
+          "MLP_COEFFICIENT_D", f_tmp);
+    }
+    else
+    {
+      mlp->pv.co_D = f_tmp;
+      LOG (GNUNET_ERROR_TYPE_INFO, "Using %s gap of %.3f\n",
+          "MLP_COEFFICIENT_D", mlp->pv.lp_mip_gap);
+    }
+  }
 
-  /* Get proportionality coefficient from configuration */
-  if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (env->cfg,
-      "ats", "MLP_COEFFICIENT_R", &tmp))
-    R = (double) tmp / 100;
-  else
-    R = DEFAULT_R;
+  /* Get relativity coefficient from configuration */
+  mlp->pv.co_R = DEFAULT_R;
+  if (GNUNET_SYSERR != GNUNET_CONFIGURATION_get_value_float (env->cfg, "ats",
+      "MLP_COEFFICIENT_R", &f_tmp))
+  {
+    if ((f_tmp < 0.0))
+    {
+      LOG (GNUNET_ERROR_TYPE_ERROR, _("Invalid %s configuration %f \n"),
+          "MLP_COEFFICIENT_R", f_tmp);
+    }
+    else
+    {
+      mlp->pv.co_R = f_tmp;
+      LOG (GNUNET_ERROR_TYPE_INFO, "Using %s gap of %.3f\n",
+          "MLP_COEFFICIENT_R", mlp->pv.lp_mip_gap);
+    }
+  }
 
+
   /* Get utilization coefficient from configuration */
-  if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (env->cfg,
-      "ats", "MLP_COEFFICIENT_U", &tmp))
-    U = (double) tmp / 100;
-  else
-    U = DEFAULT_U;
+  mlp->pv.co_U = DEFAULT_U;
+  if (GNUNET_SYSERR != GNUNET_CONFIGURATION_get_value_float (env->cfg, "ats",
+      "MLP_COEFFICIENT_U", &f_tmp))
+  {
+    if ((f_tmp < 0.0))
+    {
+      LOG (GNUNET_ERROR_TYPE_ERROR, _("Invalid %s configuration %f \n"),
+          "MLP_COEFFICIENT_U", f_tmp);
+    }
+    else
+    {
+      mlp->pv.co_U = f_tmp;
+      LOG (GNUNET_ERROR_TYPE_INFO, "Using %s gap of %.3f\n",
+          "MLP_COEFFICIENT_U", mlp->pv.lp_mip_gap);
+    }
+  }
 
   /* Get quality metric coefficients from configuration */
   int i_delay = MLP_NaN;
@@ -2547,9 +2580,6 @@
   mlp->get_properties_cls = env->get_property_cls;
   /* Setting MLP Input variables */
 
-  mlp->pv.co_D = D;
-  mlp->pv.co_R = R;
-  mlp->pv.co_U = U;
   mlp->pv.b_min = b_min;
   mlp->pv.n_min = n_min;
   mlp->pv.m_q = GNUNET_ATS_QualityPropertiesCount;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]