- // round the loads
- std::vector<double> iloads(hosts.size());
- std::transform(loads.begin(), loads.end(), iloads.begin(), round);
- // compute the differences between each load and its rounded value
- std::vector<double> diffs(hosts.size());
- std::transform(loads.begin(), loads.end(), iloads.begin(),
- diffs.begin(), std::minus<double>());
- // compute the absolute values of the diffs
- std::vector<double> adiffs(hosts.size());
- std::transform(diffs.begin(), diffs.end(), adiffs.begin(), fabs);
- // find i, index of the element farthest from its rounded value