Merge chunks back to single result.
299 {
301 result.
metadata = original_input.metadata;
302 result.metadata["sort_type"] = "chunked_merged";
303
304 if constexpr (std::same_as<InputType, OutputType>) {
305 if (chunks.empty()) {
306 return result;
307 }
308
309 try {
310 std::vector<std::vector<double>> merged_channels;
311
312 for (const auto& chunk : chunks) {
314
315 if (merged_channels.empty()) {
316 merged_channels.resize(chunk_channels.size());
317 }
318
319 for (size_t ch = 0; ch < chunk_channels.size() && ch < merged_channels.size(); ++ch) {
320 merged_channels[ch].insert(merged_channels[ch].end(),
321 chunk_channels[ch].begin(), chunk_channels[ch].end());
322 }
323 }
324
326 result.metadata = original_input.metadata;
327 result.metadata["sort_type"] = "chunked_merged";
328
329 } catch (...) {
330 result.data = chunks[0];
331 }
332 }
333
334 return result;
335 }
output_type convert_result(std::vector< std::vector< double > > &result_data, DataStructureInfo &metadata)
Convert processed double data back to OutputType using metadata and optional callback.
static std::span< double > extract_numeric_data(const T &compute_data)
extract numeric data from single-variant types
typename base_type::output_type output_type
std::unordered_map< std::string, std::any > metadata
Associated metadata.