- 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);