trace = xbt_new0(s_tmgr_trace_t, 1);
trace->type = e_trace_probabilist;
trace = xbt_new0(s_tmgr_trace_t, 1);
trace->type = e_trace_probabilist;
//FIXME : may also be a parameter
trace->s_probabilist.next_event = 0;
trace->s_probabilist.is_state_trace = is_state_trace;
//FIXME : may also be a parameter
trace->s_probabilist.next_event = 0;
trace->s_probabilist.is_state_trace = is_state_trace;
event_generator = xbt_new0(s_probabilist_event_generator_t, 1);
event_generator->type = e_generator_uniform;
event_generator->s_uniform_parameters.min = min;
event_generator->s_uniform_parameters.max = max;
event_generator->rng_stream = rng_stream;
event_generator = xbt_new0(s_probabilist_event_generator_t, 1);
event_generator->type = e_generator_uniform;
event_generator->s_uniform_parameters.min = min;
event_generator->s_uniform_parameters.max = max;
event_generator->rng_stream = rng_stream;
event_generator = xbt_new0(s_probabilist_event_generator_t, 1);
event_generator->type = e_generator_exponential;
event_generator->s_exponential_parameters.rate = rate;
event_generator->rng_stream = rng_stream;
event_generator = xbt_new0(s_probabilist_event_generator_t, 1);
event_generator->type = e_generator_exponential;
event_generator->s_exponential_parameters.rate = rate;
event_generator->rng_stream = rng_stream;
event_generator = xbt_new0(s_probabilist_event_generator_t, 1);
event_generator->type = e_generator_weibull;
event_generator->s_weibull_parameters.scale = scale;
event_generator->s_weibull_parameters.shape = shape;
event_generator->rng_stream = rng_stream;
event_generator = xbt_new0(s_probabilist_event_generator_t, 1);
event_generator->type = e_generator_weibull;
event_generator->s_weibull_parameters.scale = scale;
event_generator->s_weibull_parameters.shape = shape;
event_generator->rng_stream = rng_stream;
switch(generator->type) {
case e_generator_uniform:
generator->next_value = (RngStream_RandU01(generator->rng_stream)
switch(generator->type) {
case e_generator_uniform:
generator->next_value = (RngStream_RandU01(generator->rng_stream)
* pow( log(RngStream_RandU01(generator->rng_stream)),
1.0 / generator->s_weibull_parameters.shape );
}
* pow( log(RngStream_RandU01(generator->rng_stream)),
1.0 / generator->s_weibull_parameters.shape );
}
xbt_assert((trace_event->idx < xbt_dynar_length(trace->s_list.event_list)),
"You're referring to an event that does not exist!");
}
xbt_assert((trace_event->idx < xbt_dynar_length(trace->s_list.event_list)),
"You're referring to an event that does not exist!");
}
*value = tmgr_event_generator_next_value(trace->s_probabilist.event_generator[1]);
}
xbt_heap_push(h->heap, trace_event, event_date + event_delta);
*value = tmgr_event_generator_next_value(trace->s_probabilist.event_generator[1]);
}
xbt_heap_push(h->heap, trace_event, event_date + event_delta);