- load_to_send = std::min(real_load, nb.get_debt());
- if (load_to_send >= opt::min_transfer_amount) {
- nb.set_debt(nb.get_debt() - load_to_send);
- real_load -= load_to_send;
- } else {
+ double excess_load = real_load - expected_load;
+ if (excess_load > 0.0) {
+ load_to_send = compute_load_to_send(std::min(excess_load,
+ nb.get_debt()));
+ if (load_to_send > 0.0)
+ nb.set_debt(nb.get_debt() - load_to_send);
+ } else