3#include <unordered_map>
4#include <unordered_set>
16 shifted_columns.insert(col);
18 return shifted_columns;
20 return shifted_columns.contains(c);
33 auto it = shifts.find(c);
47 auto it = unshifts.find(c);
62 full_row.
get(shifted.value()) =
value;
static constexpr size_t num_columns()
const FF & get(Column col, uint32_t row) const
const FF & get_column_or_shift(ColumnAndShifts col, uint32_t row) const
std::optional< ColumnAndShifts > shift_column(Column c)
AvmFullRow get_full_row(const TraceContainer &trace, uint32_t row)
bool is_shift(ColumnAndShifts c)
std::optional< Column > unshift_column(ColumnAndShifts c)
AvmFullRowConstRef get_full_row_ref(const TraceContainer &trace, uint32_t row)
constexpr auto SHIFTED_COLUMNS_ARRAY
constexpr auto TO_BE_SHIFTED_COLUMNS_ARRAY
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
FF & get(ColumnAndShifts col)