204 throw_or_abort(
"Trace is structuring not implemented for UltraHonk");
207 for (
auto& block : this->
get()) {
208 block.trace_offset_ =
offset;
209 offset += block.get_fixed_size(is_structured);
215 info(
"Gate blocks summary:");
232 for (
const auto& block : this->
get()) {
233 total_size += block.size();
241 for (
auto& block : this->
get()) {
242 total_size += block.get_fixed_size();
Basic structure for storing gate data in a builder.
static constexpr size_t NUM_WIRES
A template class for a reference array. Behaves as if std::array<T&, N> was possible.
A template class for a reference vector. Behaves as if std::vector<T&> was possible.
Abstract interface for a generic selector.
Selector backed by a slab allocator vector.
static constexpr size_t NUM_WIRES
size_t get_total_content_size()
size_t get_structured_dyadic_size()
bool operator==(const UltraExecutionTraceBlocks &other) const =default
void compute_offsets(bool is_structured)
UltraExecutionTraceBlocks()=default
SlabVectorSelector< fr > gate_selector
SelectorType & q_arith() override
virtual Selector< fr > & q_poseidon2_internal()
virtual Selector< fr > & q_elliptic()
RefVector< Selector< fr > > get_selectors() override
virtual Selector< fr > & q_arith()
virtual Selector< fr > & q_poseidon2_external()
virtual Selector< fr > & q_lookup_type()
virtual Selector< fr > & q_nnf()
virtual Selector< fr > & q_delta_range()
std::array< ZeroSelector< fr >, 8 > zero_selectors
virtual Selector< fr > & q_memory()
SlabVectorSelector< fr > gate_selector
SelectorType & q_delta_range() override
SlabVectorSelector< fr > gate_selector
SelectorType & q_elliptic() override
SlabVectorSelector< fr > gate_selector
SelectorType & q_lookup_type() override
SelectorType & q_memory() override
SlabVectorSelector< fr > gate_selector
SlabVectorSelector< fr > gate_selector
SelectorType & q_nnf() override
SelectorType & q_lookup_type() override
SelectorType & q_arith() override
SelectorType & q_nnf() override
SelectorType & q_elliptic() override
SelectorType & q_delta_range() override
SelectorType & q_poseidon2_external() override
std::array< SlabVectorSelector< fr >, 8 > gate_selectors
SelectorType & q_memory() override
SelectorType & q_poseidon2_internal() override
SlabVectorSelector< fr > gate_selector
SelectorType & q_poseidon2_external() override
SlabVectorSelector< fr > gate_selector
SelectorType & q_poseidon2_internal() override
constexpr T get_msb(const T in)
Entry point for Barretenberg command-line interface.
field< Bn254FrParams > fr
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Defines the circuit block types for the Ultra arithmetization.
UltraTracePublicInputBlock pub_inputs
UltraTraceMemoryBlock memory
UltraTraceDeltaRangeBlock delta_range
UltraTraceArithmeticBlock arithmetic
UltraTraceNonNativeFieldBlock nnf
auto get_gate_blocks() const
UltraTraceOverflowBlock overflow
UltraTraceEllipticBlock elliptic
UltraTracePoseidon2ExternalBlock poseidon2_external
bool operator==(const UltraTraceBlockData &other) const =default
UltraTracePoseidon2InternalBlock poseidon2_internal
UltraTraceLookupBlock lookup
void throw_or_abort(std::string const &err)