inline std::vector<int> _autorange_workers(const alps::mpi::communicator &comm, bool include_boss) { std::vector<int> out; size_t Nprocs(comm.size() - !include_boss); if (!Nprocs) throw (std::logic_error("No workers to evaluate")); for (size_t p = 0; p < comm.size(); p++) { if (include_boss || comm.rank() != p) { out.push_back(p); }; }; return out; }