#include "firstlevelequi.h" Split firstLevelEqui(std::size_t n, CoresList const& coresList) { Split split; auto firstLevelPar = n; split.insert(0); for(auto const& k: coresList) { std::size_t start{}; std::size_t const step = firstLevelPar/k; std::size_t remain = firstLevelPar - step*k; for(unsigned int i = 0; i < k-1; ++i) { std::size_t offset = !!remain; remain -= offset; start += step+offset; split.insert(start * (n/firstLevelPar)); } } return split; }