gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r17231 - gnunet/src/nse


From: gnunet
Subject: [GNUnet-SVN] r17231 - gnunet/src/nse
Date: Wed, 5 Oct 2011 21:55:20 +0200

Author: grothoff
Date: 2011-10-05 21:55:20 +0200 (Wed, 05 Oct 2011)
New Revision: 17231

Modified:
   gnunet/src/nse/gnunet-service-nse.c
   gnunet/src/nse/nse_api.c
Log:
fix correction according to paper, minimum NSE should be our neighour set

Modified: gnunet/src/nse/gnunet-service-nse.c
===================================================================
--- gnunet/src/nse/gnunet-service-nse.c 2011-10-05 19:54:57 UTC (rev 17230)
+++ gnunet/src/nse/gnunet-service-nse.c 2011-10-05 19:55:20 UTC (rev 17231)
@@ -308,6 +308,7 @@
   double q;
   double r;
   double temp;
+  double nsize;
 
   /* Weighted incremental algorithm for stddev according to West (1979) */
   mean = 0.0;
@@ -333,12 +334,15 @@
   std_dev = sqrt (variance);
   current_std_dev = std_dev;
   current_size_estimate = mean;
-
+  
   em->header.size = htons (sizeof (struct GNUNET_NSE_ClientMessage));
   em->header.type = htons (GNUNET_MESSAGE_TYPE_NSE_ESTIMATE);
   em->reserved = htonl (0);
   em->timestamp = GNUNET_TIME_absolute_hton (GNUNET_TIME_absolute_get ());
-  em->size_estimate = mean - 1.0 / 3.0;
+  em->size_estimate = mean - 0.332747;
+  nsize = log2 (GNUNET_CONTAINER_multihashmap_size (peers) + 1);
+  if (em->size_estimate < nsize)
+    em->size_estimate = nsize;
   em->std_deviation = std_dev;
   GNUNET_STATISTICS_set (stats, "# nodes in the network (estimate)",
                          (uint64_t) pow (2, mean - 1.0 / 3.0), GNUNET_NO);

Modified: gnunet/src/nse/nse_api.c
===================================================================
--- gnunet/src/nse/nse_api.c    2011-10-05 19:54:57 UTC (rev 17230)
+++ gnunet/src/nse/nse_api.c    2011-10-05 19:55:20 UTC (rev 17231)
@@ -119,7 +119,8 @@
   }
   client_msg = (const struct GNUNET_NSE_ClientMessage *) msg;
   h->recv_cb (h->recv_cb_cls, GNUNET_TIME_absolute_ntoh 
(client_msg->timestamp),
-              client_msg->size_estimate, client_msg->std_deviation);
+              client_msg->size_estimate,
+             client_msg->std_deviation);
   GNUNET_CLIENT_receive (h->client, &message_handler, h,
                          GNUNET_TIME_UNIT_FOREVER_REL);
 }




reply via email to

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