gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r15009 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r15009 - gnunet/src/transport
Date: Fri, 15 Apr 2011 22:03:33 +0200

Author: wachs
Date: 2011-04-15 22:03:33 +0200 (Fri, 15 Apr 2011)
New Revision: 15009

Modified:
   gnunet/src/transport/gnunet-service-transport.c
Log:
test update function to ensure number of changes


Modified: gnunet/src/transport/gnunet-service-transport.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport.c     2011-04-15 19:46:04 UTC 
(rev 15008)
+++ gnunet/src/transport/gnunet-service-transport.c     2011-04-15 20:03:33 UTC 
(rev 15009)
@@ -6097,16 +6097,16 @@
        }*/
 
 #if VERBOSE_ATS
-       if (glp_get_col_prim(prob,2*c_mechs+1) != 1)
+       if (glp_get_col_prim(ats->prob,2*c_mechs+1) != 1)
        {
        int c;
        for (c=1; c<= available_quality_metrics; c++ )
        {
-               GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "%s %f\n", 
glp_get_col_name(prob,2*c_mechs+3+c), glp_get_col_prim(prob,2*c_mechs+3+c));
+               GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "%s %f\n", 
glp_get_col_name(ats->prob,2*c_mechs+3+c), 
glp_get_col_prim(ats->prob,2*c_mechs+3+c));
        }
-       GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "%s %f\n", 
glp_get_col_name(prob,2*c_mechs+1), glp_get_col_prim(prob,2*c_mechs+1));
-       GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "%s %f\n", 
glp_get_col_name(prob,2*c_mechs+2), glp_get_col_prim(prob,2*c_mechs+2));
-       GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "%s %f\n", 
glp_get_col_name(prob,2*c_mechs+3), glp_get_col_prim(prob,2*c_mechs+3));
+       GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "%s %f\n", 
glp_get_col_name(ats->prob,2*c_mechs+1), 
glp_get_col_prim(ats->prob,2*c_mechs+1));
+       GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "%s %f\n", 
glp_get_col_name(ats->prob,2*c_mechs+2), 
glp_get_col_prim(ats->prob,2*c_mechs+2));
+       GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "%s %f\n", 
glp_get_col_name(ats->prob,2*c_mechs+3), 
glp_get_col_prim(ats->prob,2*c_mechs+3));
        GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "objective value:  %f\n", 
glp_mip_obj_val(ats->prob));
        }
 #endif
@@ -6268,7 +6268,54 @@
        GNUNET_free_non_null (ar);
 }
 
+static void ats_update_problem_qm_TEST ()
+{
+       int row_index;
+       int c, c2;
 
+       int old_ja[ats->stat.c_mechs + 2];
+       double old_ar[ats->stat.c_mechs + 2];
+       int c_old;
+       int changed = 0;
+
+       int *ja    = GNUNET_malloc ((1 + ats->stat.c_mechs*2 + 3 + 
available_quality_metrics) * sizeof (int));
+       double *ar = GNUNET_malloc ((1 + ats->stat.c_mechs*2 + 3 + 
available_quality_metrics) * sizeof (double));
+#if DEBUG_ATS
+       GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Updating problem quality metrics 
TEST\n");
+#endif
+       row_index = ats->stat.begin_qm;
+
+       for (c=0; c<available_quality_metrics; c++)
+       {
+
+               c_old = glp_get_mat_row (ats->prob, row_index, old_ja, old_ar);
+
+               glp_set_row_bnds(ats->prob, row_index, GLP_FX, 0.0, 0.0);
+
+               for (c2=1; c2<=c_old; c2++)
+               {
+                       ja[c2] = old_ja[c2];
+                       if ((changed < 3) && (c2>2))
+                       {
+                               ar[c2] = old_ar[c2] + 500 - changed;
+                               changed ++;
+                       }
+                       else
+                               ar[c2] = old_ar[c2];
+#if VERBOSE_ATS
+                       GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "[index]=[%i]: old 
[%i,%i]=%f  new [%i,%i]=%f\n",c2, row_index, old_ja[c2], old_ar[c2], row_index, 
ja[c2], ar[c2]);
+#endif
+               }
+               glp_set_mat_row (ats->prob, row_index, c_old, ja, ar);
+
+               row_index ++;
+       }
+
+
+       GNUNET_free_non_null (ja);
+       GNUNET_free_non_null (ar);
+}
+
 /** solve the bandwidth distribution problem
  * @param max_it maximum iterations
  * @param max_dur maximum duration in ms
@@ -6795,6 +6842,7 @@
        else if ((ats->modified_addr == GNUNET_NO) && (ats->modified_quality == 
GNUNET_YES))
        {
                ats_update_problem_qm();
+               ats_update_problem_qm_TEST ();
                text = "modified quality";
        }
 #if DEBUG_ATS




reply via email to

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