+ // find limit between least loaded neighbors, and more loaded ones
+ pneigh_type::iterator bound =
+ std::find_if(pneigh.begin(), pneigh.end(),
+ bind(std::less_equal<double>(),
+ get_load(), bind(&neighbor::get_load, _1)));
+
+ // compute load differences
+ std::vector<double> delta(bound - pneigh.begin());
+ std::transform(pneigh.begin(), bound, delta.begin(),
+ bind(std::minus<double>(),
+ get_load(), bind(&neighbor::get_load, _1)));
+
+ // send load...