for (auto val : speedTrace->event_list) {
timePoints_[i] = time;
integral_[i] = integral;
- integral += val.delta * val.value;
- time += val.delta;
+ integral += val.date_ * val.value_;
+ time += val.date_;
i++;
}
timePoints_[i] = time;
*/
double CpuTiTgmr::integrate(double a, double b)
{
- double first_chunk;
- double middle_chunk;
- double last_chunk;
int a_index;
- int b_index;
if ((a < 0.0) || (a > b)) {
xbt_die("Error, invalid integration interval [%.2f,%.2f]. "
else
a_index = static_cast<int> (ceil(a / lastTime_));
- b_index = static_cast<int> (floor(b / lastTime_));
+ int b_index = static_cast<int> (floor(b / lastTime_));
if (a_index > b_index) { /* Same chunk */
return trace_->integrateSimple(a - (a_index - 1) * lastTime_, b - (b_index) * lastTime_);
}
- first_chunk = trace_->integrateSimple(a - (a_index - 1) * lastTime_, lastTime_);
- middle_chunk = (b_index - a_index) * total_;
- last_chunk = trace_->integrateSimple(0.0, b - (b_index) * lastTime_);
+ double first_chunk = trace_->integrateSimple(a - (a_index - 1) * lastTime_, lastTime_);
+ double middle_chunk = (b_index - a_index) * total_;
+ double last_chunk = trace_->integrateSimple(0.0, b - (b_index) * lastTime_);
XBT_DEBUG("first_chunk=%.2f middle_chunk=%.2f last_chunk=%.2f\n", first_chunk, middle_chunk, last_chunk);
double CpuTiTrace::integrateSimplePoint(double a)
{
double integral = 0;
- int ind;
double a_aux = a;
- ind = binarySearch(timePoints_, a, 0, nbPoints_ - 1);
+ int ind = binarySearch(timePoints_, a, 0, nbPoints_ - 1);
integral += integral_[ind];
+
XBT_DEBUG("a %f ind %d integral %f ind + 1 %f ind %f time +1 %f time %f",
a, ind, integral, integral_[ind + 1], integral_[ind], timePoints_[ind + 1], timePoints_[ind]);
double_update(&a_aux, timePoints_[ind], sg_maxmin_precision*sg_surf_precision);
{
double reduced_a = a - floor(a / lastTime_) * lastTime_;
int point = trace_->binarySearch(trace_->timePoints_, reduced_a, 0, trace_->nbPoints_ - 1);
- s_tmgr_event_t val = speedTrace_->event_list.at(point);
- return val.value;
+ trace_mgr::DatedValue val = speedTrace_->event_list.at(point);
+ return val.value_;
}
/**
/* only one point available, fixed trace */
if (speedTrace->event_list.size() == 1) {
- s_tmgr_event_t val = speedTrace->event_list.front();
+ trace_mgr::DatedValue val = speedTrace->event_list.front();
type_ = TRACE_FIXED;
- value_ = val.value;
+ value_ = val.value_;
return;
}
/* count the total time of trace file */
for (auto val : speedTrace->event_list)
- total_time += val.delta;
+ total_time += val.date_;
trace_ = new CpuTiTrace(speedTrace);
lastTime_ = total_time;
/* add a fake trace event if periodicity == 0 */
if (trace && trace->event_list.size() > 1) {
- s_tmgr_event_t val = trace->event_list.back();
- if (val.delta < 1e-12)
- speed_.event = future_evt_set->add_trace(tmgr_empty_trace_new(), 0.0, this);
+ trace_mgr::DatedValue val = trace->event_list.back();
+ if (val.date_ < 1e-12)
+ speed_.event = future_evt_set->add_trace(new simgrid::trace_mgr::trace(), this);
}
}
-void CpuTi::apply_event(tmgr_trace_iterator_t event, double value)
+void CpuTi::apply_event(tmgr_trace_event_t event, double value)
{
if (event == speed_.event) {
tmgr_trace_t speedTrace;
modified(true);
speedTrace = speedIntegratedTrace_->speedTrace_;
- s_tmgr_event_t val = speedTrace->event_list.back();
+ trace_mgr::DatedValue val = speedTrace->event_list.back();
delete speedIntegratedTrace_;
- speed_.scale = val.value;
+ speed_.scale = val.value_;
- trace = new CpuTiTgmr(TRACE_FIXED, val.value);
- XBT_DEBUG("value %f", val.value);
+ trace = new CpuTiTgmr(TRACE_FIXED, val.value_);
+ XBT_DEBUG("value %f", val.value_);
speedIntegratedTrace_ = trace;