57 trace.visit_column(PermutationSettings::SRC_SELECTOR, [&](uint32_t row,
const FF&) {
58 auto src_values =
trace.get_multiple(PermutationSettings::SRC_COLUMNS, row);
59 auto index_it =
row_idx.find(src_values);
60 if (index_it ==
row_idx.end() || index_it->second.empty()) {
61 throw std::runtime_error(
"Failed setting selectors for " + std::string(PermutationSettings::NAME) +
62 ". Could not find tuple in destination.\nSRC tuple (row " +
64 "): " + column_values_to_string(src_values, PermutationSettings::SRC_COLUMNS));
68 std::vector<uint32_t>& possible_dst_rows = index_it->second;
69 uint32_t dst_row = possible_dst_rows.back();
70 trace.set(PermutationSettings::DST_SELECTOR, dst_row, 1);
73 possible_dst_rows.pop_back();