120 std::array<FF, INTERVAL_SIZE>
rows{};
static constexpr size_t num_columns()
const FF & get(Column col, uint32_t row) const
static constexpr size_t NUM_SHARDS
void reserve_column(Column col, size_t size)
uint32_t get_num_rows() const
uint32_t get_num_witness_rows() const
const FF & get_column_or_shift(ColumnAndShifts col, uint32_t row) const
std::unique_ptr< std::array< SparseColumn, NUM_COLUMNS_WITHOUT_SHIFTS > > trace
void invert_columns(std::span< const Column > cols)
auto get_multiple(const std::array< ColumnAndShifts, N > &cols, uint32_t row) const
static ColumnInterval & get_or_create_shard(SparseColumn &column_data, size_t shard_idx)
void visit_column(Column col, const std::function< void(uint32_t, const FF &)> &visitor) const
uint32_t get_column_rows(Column col) const
void set(Column col, uint32_t row, const FF &value)
static constexpr uint32_t INTERVAL_SIZE
void invert_column(Column col)
void clear_column(Column col)
constexpr std::size_t MAX_AVM_TRACE_SIZE
constexpr auto NUM_COLUMNS_WITHOUT_SHIFTS
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
TUPLET_INLINE constexpr auto forward_as_tuple(T &&... a) noexcept
std::array< FF, INTERVAL_SIZE > rows
std::array< std::atomic< ColumnInterval * >, NUM_SHARDS > slots
SparseColumn(const SparseColumn &)=delete
SparseColumn & operator=(const SparseColumn &)=delete