diff --git a/src/calibration.cpp b/src/calibration.cpp index c5578e3..eeaae84 100644 --- a/src/calibration.cpp +++ b/src/calibration.cpp @@ -56,14 +56,8 @@ NDArray count_switching_pixels(NDView raw_data, ssize_t n_t NDArray switched(std::array{raw_data.shape(1), raw_data.shape(2)},0); std::vector>> futures; futures.reserve(n_threads); - auto limits = split_task(0, raw_data.shape(0), n_threads); - // make subviews for each thread - std::vector> subviews; - for (const auto &lim : limits) { - subviews.emplace_back(raw_data.data() + lim.first * raw_data.strides()[0], - std::array{lim.second-lim.first, raw_data.shape(1), raw_data.shape(2)}); - } + auto subviews = make_subviews(raw_data, n_threads); for (auto view : subviews) { futures.push_back(std::async(static_cast(*)(NDView)>(&count_switching_pixels), view));