Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Event generator: Correct a mistake and add tiny debug
[simgrid.git] / src / surf / trace_mgr.c
index c541762..23fedde 100644 (file)
@@ -133,8 +133,8 @@ double tmgr_event_generator_next_value(probabilist_event_generator_t generator)
                               / generator->s_exponential_parameters.rate;
       break;
     case e_generator_weibull:
-      generator->next_value = generator->s_weibull_parameters.scale
-                              * pow( log(RngStream_RandU01(generator->rng_stream)),
+      generator->next_value = generator->s_weibull_parameters.scale
+                              * pow( -log(RngStream_RandU01(generator->rng_stream)),
                                     1.0 / generator->s_weibull_parameters.shape );
   }
 
@@ -342,16 +342,18 @@ tmgr_trace_event_t tmgr_history_get_next_event_leq(tmgr_history_t h,
         *value = (double) trace->s_probabilist.next_event;
         if(trace->s_probabilist.next_event == 0) {
           event_delta = tmgr_event_generator_next_value(trace->s_probabilist.event_generator[0]);
-          trace->s_probabilist.next_event = 0;
+          trace->s_probabilist.next_event = 1;
         } else {
           event_delta = tmgr_event_generator_next_value(trace->s_probabilist.event_generator[1]);
-          trace->s_probabilist.next_event = 1;
+          trace->s_probabilist.next_event = 0;
         }
       } else {
         event_delta = tmgr_event_generator_next_value(trace->s_probabilist.event_generator[0]);
         *value = tmgr_event_generator_next_value(trace->s_probabilist.event_generator[1]);
       }
       xbt_heap_push(h->heap, trace_event, event_date + event_delta);
+      XBT_DEBUG("Generating a new event, with value %f", *value);
+      XBT_DEBUG("Event date: %f", event_date + event_delta);
 
       break;
   }