+ // find limit between least loaded neighbors, and more loaded ones
+ pneigh_type::iterator bound =
+ std::lower_bound(pneigh.begin(), pneigh.end(),
+ get_load(),
+ bind(std::less<double>(),
+ bind(&neighbor::get_load, _1), _2));
+
+ // 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...