Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add log to random_mgr.
[simgrid.git] / src / surf / random_mgr.c
index 48769c4..e65576a 100644 (file)
@@ -6,7 +6,9 @@
 
 #include "surf/random_mgr.h"
 #include "xbt/sysdep.h"
-#include "simgrid_config.h" /*_XBT_WIN32*/
+#include "gras_config.h" /*_XBT_WIN32*/
+
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(random, surf, "Random part of surf");
 
 #ifdef _XBT_WIN32
 
@@ -88,7 +90,8 @@ _erand48_r(unsigned short int xsubi[3], struct drand48_data *buffer,
   return 0;
 }
 
-int _drand48_iterate(unsigned short int xsubi[3], struct drand48_data *buffer)
+int _drand48_iterate(unsigned short int xsubi[3],
+                     struct drand48_data *buffer)
 {
   uint64_t X;
   uint64_t result;
@@ -122,7 +125,8 @@ double _drand48(void)
 {
   double result;
 
-  (void) _erand48_r(__libc_drand48_data.__x, &__libc_drand48_data, &result);
+  (void) _erand48_r(__libc_drand48_data.__x, &__libc_drand48_data,
+                    &result);
 
   return result;
 }
@@ -195,6 +199,9 @@ static double custom_random(Generator generator, long int *seed)
     return drand48();
   case RAND:
     return (double) rand_r((unsigned int *) seed) / RAND_MAX;
+  case RNGSTREAM :
+         XBT_INFO("Seen RNGSTREAM");
+         return 0.0;
   default:
     return drand48();
   }
@@ -213,14 +220,12 @@ double random_generate(random_data_t random)
   if (random->std == 0)
     return random->mean * (random->max - random->min) + random->min;
 
-  a =
-    random->mean * (random->mean * (1 - random->mean) /
-                    (random->std * random->std) - 1);
-  b =
-    (1 -
-     random->mean) * (random->mean * (1 -
-                                      random->mean) / (random->std *
-                                                       random->std) - 1);
+  a = random->mean * (random->mean * (1 - random->mean) /
+                      (random->std * random->std) - 1);
+  b = (1 -
+       random->mean) * (random->mean * (1 -
+                                        random->mean) / (random->std *
+                                                         random->std) - 1);
 
   alpha = a + b;
   if (a <= 1. || b <= 1.)
@@ -261,9 +266,11 @@ random_data_t random_new(Generator generator, long int seed,
   if (max < min)
     THROW2(arg_error, 0, "random->max < random->min (%f < %f)", max, min);
   if (mean < min)
-    THROW2(arg_error, 0, "random->mean < random->min (%f < %f)", mean, min);
+    THROW2(arg_error, 0, "random->mean < random->min (%f < %f)", mean,
+           min);
   if (mean > max)
-    THROW2(arg_error, 0, "random->mean > random->max (%f > %f)", mean, max);
+    THROW2(arg_error, 0, "random->mean > random->max (%f > %f)", mean,
+           max);
 
   /* normalize the mean and standard deviation before storing */
   random->mean = (mean - min) / (max - min);