XBT_LOG_NEW_DEFAULT_SUBCATEGORY(cpu_ti, res_cpu, "CPU resource, Trace Integration model");
-namespace simgrid {
-namespace kernel {
-namespace resource {
+namespace simgrid::kernel::resource {
/*********
* Trace *
double delay=profile->get_repeat_delay()+ events.at(0).date_;
xbt_assert( events.back().value_==prev_value,"Profiles need to end as they start");
- time += delay;
+ time += delay;
integral += delay*prev_value;
time_points_.push_back(time);
XBT_DEBUG("Quotient: %g reduced_amount: %f reduced_a: %f", quotient, reduced_amount, reduced_a);
/* Now solve for new_amount which is <= trace_total */
- double reduced_b;
XBT_DEBUG("Solve integral: [%.2f, amount=%.2f]", reduced_a, reduced_amount);
- double amount_till_end = integrate(reduced_a, last_time_);
- if (amount_till_end > reduced_amount) {
- reduced_b = profile_->solve_simple(reduced_a, reduced_amount);
- } else {
- reduced_b = last_time_ + profile_->solve_simple(0.0, reduced_amount - amount_till_end);
- }
+ double amount_till_end = integrate(reduced_a, last_time_);
+ double reduced_b = amount_till_end > reduced_amount
+ ? profile_->solve_simple(reduced_a, reduced_amount)
+ : last_time_ + profile_->solve_simple(0.0, reduced_amount - amount_till_end);
/* Re-map to the original b and amount */
return last_time_ * floor(a / last_time_) + (quotient * last_time_) + reduced_b;
return get_remains_no_update();
}
-} // namespace resource
-} // namespace kernel
-} // namespace simgrid
+} // namespace simgrid::kernel::resource